mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-29 09:49:41 +03:00
1967c25fac
git-svn-id: svn://kolibrios.org@718 a494cfbc-eb01-0410-851d-a64ba20cac60
2700 lines
34 KiB
NASM
2700 lines
34 KiB
NASM
|
|
_puts:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,32
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
MOV EAX,10
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,32
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
POP EBP
|
|
RET
|
|
|
|
_reverse:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _strlen
|
|
ADD ESP,4
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_3:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
CALL __ult
|
|
OR EAX,EAX
|
|
JNE _lib_5
|
|
JMP _lib_4
|
|
_lib_5:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
JMP _lib_3
|
|
_lib_4:
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_strcpy:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_7:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
OR EAX,EAX
|
|
JNE _lib_9
|
|
JMP _lib_8
|
|
_lib_9:
|
|
JMP _lib_7
|
|
_lib_8:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_strlen:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_11:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_13
|
|
JMP _lib_12
|
|
_lib_13:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_11
|
|
_lib_12:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_toupper:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,122
|
|
CALL __le
|
|
OR EAX,EAX
|
|
JNE _lib_18
|
|
JMP _lib_16
|
|
_lib_18:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,97
|
|
CALL __ge
|
|
OR EAX,EAX
|
|
JNE _lib_19
|
|
JMP _lib_16
|
|
_lib_19:
|
|
MOV EAX,1
|
|
JMP _lib_17
|
|
_lib_16:
|
|
XOR EAX,EAX
|
|
_lib_17:
|
|
OR EAX,EAX
|
|
JNE _lib_20
|
|
JMP _lib_15
|
|
_lib_20:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBP
|
|
RET
|
|
_lib_15:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBP
|
|
RET
|
|
|
|
_atoi:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
_lib_22:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isspace
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _lib_24
|
|
JMP _lib_23
|
|
_lib_24:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_22
|
|
_lib_23:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
JMP _lib_27
|
|
_lib_28:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,-1
|
|
MOV [EBX],EAX
|
|
_lib_29:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_26
|
|
_lib_27:
|
|
CALL __switch
|
|
DD _lib_28
|
|
DD 45
|
|
DD _lib_29
|
|
DD 43
|
|
DD 0
|
|
_lib_26:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_lib_30:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isdigit
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _lib_32
|
|
JMP _lib_31
|
|
_lib_32:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,10
|
|
IMUL EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,48
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_30
|
|
_lib_31:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
IMUL EBX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_atoib:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_lib_34:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isspace
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _lib_36
|
|
JMP _lib_35
|
|
_lib_36:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_34
|
|
_lib_35:
|
|
_lib_37:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,127
|
|
AND EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
MOV EBX,EAX
|
|
MOV EAX,48
|
|
CALL __ge
|
|
OR EAX,EAX
|
|
JNE _lib_39
|
|
JMP _lib_38
|
|
_lib_39:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,97
|
|
CALL __ge
|
|
OR EAX,EAX
|
|
JNE _lib_41
|
|
JMP _lib_40
|
|
_lib_41:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,87
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_42
|
|
_lib_40:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,65
|
|
CALL __ge
|
|
OR EAX,EAX
|
|
JNE _lib_44
|
|
JMP _lib_43
|
|
_lib_44:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,55
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_45
|
|
_lib_43:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,48
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_45:
|
|
_lib_42:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
CALL __ge
|
|
OR EAX,EAX
|
|
JNE _lib_47
|
|
JMP _lib_46
|
|
_lib_47:
|
|
JMP _lib_38
|
|
_lib_46:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
IMUL EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_37
|
|
_lib_38:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_fgets:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,1
|
|
PUSH EAX
|
|
MOV CL,4
|
|
CALL __gets
|
|
ADD ESP,16
|
|
POP EBP
|
|
RET
|
|
|
|
_gets:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EAX,32767
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
PUSH EAX
|
|
XOR EAX,EAX
|
|
PUSH EAX
|
|
MOV CL,4
|
|
CALL __gets
|
|
ADD ESP,16
|
|
POP EBP
|
|
RET
|
|
|
|
__gets:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_51:
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _lib_53
|
|
JMP _lib_52
|
|
_lib_53:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _OS_fgetc
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
JMP _lib_56
|
|
_lib_57:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _lib_59
|
|
JMP _lib_58
|
|
_lib_59:
|
|
XOR EAX,EAX
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_lib_58:
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_lib_60:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_lib_61:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
CALL __ugt
|
|
OR EAX,EAX
|
|
JNE _lib_63
|
|
JMP _lib_62
|
|
_lib_63:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
JMP _lib_64
|
|
_lib_62:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_lib_64:
|
|
JMP _lib_65
|
|
_lib_66:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_65:
|
|
JMP _lib_67
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
_lib_68:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
OR EAX,EAX
|
|
JNE _lib_70
|
|
JMP _lib_69
|
|
_lib_70:
|
|
MOV EAX,_lib_50+0
|
|
PUSH EAX
|
|
MOV EAX,__iob
|
|
MOV EBX,64
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _fputs
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_68
|
|
_lib_69:
|
|
JMP _lib_51
|
|
_lib_67:
|
|
_lib_71:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_55
|
|
_lib_56:
|
|
CALL __switch
|
|
DD _lib_57
|
|
DD -1
|
|
DD _lib_60
|
|
DD 10
|
|
DD _lib_61
|
|
DD 8
|
|
DD _lib_66
|
|
DD 24
|
|
DD 0
|
|
JMP _lib_71
|
|
_lib_55:
|
|
JMP _lib_51
|
|
_lib_52:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
_lib_50 DB 8,32,8,0
|
|
|
|
_fprintf:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
CALL _CCARGC
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
POP EBX
|
|
SHL EBX,1
|
|
SHL EBX,1
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL __print
|
|
ADD ESP,8
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_printf:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__iob
|
|
MOV EBX,32
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
CALL _CCARGC
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
POP EBX
|
|
SHL EBX,1
|
|
SHL EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL __print
|
|
ADD ESP,8
|
|
POP EBP
|
|
RET
|
|
|
|
__print:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-56
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-32]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_75:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_77
|
|
JMP _lib_76
|
|
_lib_77:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,37
|
|
CALL __ne
|
|
OR EAX,EAX
|
|
JNE _lib_79
|
|
JMP _lib_78
|
|
_lib_79:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_75
|
|
JMP _lib_80
|
|
_lib_78:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
_lib_80:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,37
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _lib_82
|
|
JMP _lib_81
|
|
_lib_82:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_75
|
|
_lib_81:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,45
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _lib_84
|
|
JMP _lib_83
|
|
_lib_84:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_85
|
|
_lib_83:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_lib_85:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,48
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _lib_87
|
|
JMP _lib_86
|
|
_lib_87:
|
|
LEA EAX,[EBP-12]
|
|
MOV EBX,EAX
|
|
MOV EAX,48
|
|
MOV [EBX],EAX
|
|
JMP _lib_88
|
|
_lib_86:
|
|
LEA EAX,[EBP-12]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
MOV [EBX],EAX
|
|
_lib_88:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isdigit
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _lib_90
|
|
JMP _lib_89
|
|
_lib_90:
|
|
LEA EAX,[EBP-28]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _atoi
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_91:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isdigit
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _lib_93
|
|
JMP _lib_92
|
|
_lib_93:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_91
|
|
_lib_92:
|
|
JMP _lib_94
|
|
_lib_89:
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_lib_94:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,46
|
|
CALL __eq
|
|
OR EAX,EAX
|
|
JNE _lib_96
|
|
JMP _lib_95
|
|
_lib_96:
|
|
LEA EAX,[EBP-24]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _atoi
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_97:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _isdigit
|
|
ADD ESP,4
|
|
OR EAX,EAX
|
|
JNE _lib_99
|
|
JMP _lib_98
|
|
_lib_99:
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_97
|
|
_lib_98:
|
|
JMP _lib_100
|
|
_lib_95:
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_lib_100:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
INC EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-36]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-56]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-32]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
JMP _lib_103
|
|
_lib_104:
|
|
LEA EAX,[EBP-56]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP-56]
|
|
MOV EBX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
JMP _lib_102
|
|
_lib_105:
|
|
LEA EAX,[EBP-36]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_102
|
|
_lib_106:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-56]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _itoa
|
|
ADD ESP,8
|
|
JMP _lib_102
|
|
_lib_107:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-56]
|
|
PUSH EAX
|
|
MOV EAX,2
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _itoab
|
|
ADD ESP,12
|
|
JMP _lib_102
|
|
_lib_108:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-56]
|
|
PUSH EAX
|
|
MOV EAX,8
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _itoab
|
|
ADD ESP,12
|
|
JMP _lib_102
|
|
_lib_109:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-56]
|
|
PUSH EAX
|
|
MOV EAX,10
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _itoab
|
|
ADD ESP,12
|
|
JMP _lib_102
|
|
_lib_110:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-56]
|
|
PUSH EAX
|
|
MOV EAX,16
|
|
PUSH EAX
|
|
MOV CL,3
|
|
CALL _itoab
|
|
ADD ESP,12
|
|
JMP _lib_102
|
|
_lib_111:
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
JMP _lib_102
|
|
_lib_103:
|
|
CALL __switch
|
|
DD _lib_104
|
|
DD 99
|
|
DD _lib_105
|
|
DD 115
|
|
DD _lib_106
|
|
DD 100
|
|
DD _lib_107
|
|
DD 98
|
|
DD _lib_108
|
|
DD 111
|
|
DD _lib_109
|
|
DD 117
|
|
DD _lib_110
|
|
DD 120
|
|
DD 0
|
|
JMP _lib_111
|
|
_lib_102:
|
|
LEA EAX,[EBP-20]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-36]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _strlen
|
|
ADD ESP,4
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_115
|
|
JMP _lib_113
|
|
_lib_115:
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _lib_116
|
|
JMP _lib_113
|
|
_lib_116:
|
|
MOV EAX,1
|
|
JMP _lib_114
|
|
_lib_113:
|
|
XOR EAX,EAX
|
|
_lib_114:
|
|
OR EAX,EAX
|
|
JNE _lib_117
|
|
JMP _lib_112
|
|
_lib_117:
|
|
LEA EAX,[EBP-20]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-24]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_112:
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
CALL __gt
|
|
OR EAX,EAX
|
|
JNE _lib_119
|
|
JMP _lib_118
|
|
_lib_119:
|
|
LEA EAX,[EBP-28]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
SUB EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_120
|
|
_lib_118:
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],EAX
|
|
_lib_120:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
CALL __lneg
|
|
OR EAX,EAX
|
|
JNE _lib_122
|
|
JMP _lib_121
|
|
_lib_122:
|
|
_lib_123:
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
OR EAX,EAX
|
|
JNE _lib_125
|
|
JMP _lib_124
|
|
_lib_125:
|
|
LEA EAX,[EBP-12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_123
|
|
_lib_124:
|
|
_lib_121:
|
|
_lib_126:
|
|
LEA EAX,[EBP-20]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
OR EAX,EAX
|
|
JNE _lib_128
|
|
JMP _lib_127
|
|
_lib_128:
|
|
LEA EAX,[EBP-36]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_126
|
|
_lib_127:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_130
|
|
JMP _lib_129
|
|
_lib_130:
|
|
_lib_131:
|
|
LEA EAX,[EBP-28]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
INC EAX
|
|
OR EAX,EAX
|
|
JNE _lib_133
|
|
JMP _lib_132
|
|
_lib_133:
|
|
LEA EAX,[EBP-12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_131
|
|
_lib_132:
|
|
_lib_129:
|
|
JMP _lib_75
|
|
_lib_76:
|
|
LEA EAX,[EBP-16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_fputs:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
_lib_135:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_137
|
|
JMP _lib_136
|
|
_lib_137:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,2
|
|
CALL _OS_fputc
|
|
ADD ESP,8
|
|
JMP _lib_135
|
|
_lib_136:
|
|
POP EBP
|
|
RET
|
|
__is DD 4,4,4,4,4,4,4,4,4,260
|
|
DD 260,260,260,260,4,4,4,4,4,4
|
|
DD 4,4,4,4,4,4,4,4,4,4
|
|
DD 4,4,320,208,208,208,208,208,208,208
|
|
DD 208,208,208,208,208,208,208,208,1113,1113
|
|
DD 1113,1113,1113,1113,1113,1113,1113,1113,208,208
|
|
DD 208,208,208,208,208,1619,1619,1619,1619,1619
|
|
DD 1619,595,595,595,595,595,595,595,595,595
|
|
DD 595,595,595,595,595,595,595,595,595,595
|
|
DD 595,208,208,208,208,208,208,1139,1139,1139
|
|
DD 1139,1139,1139,115,115,115,115,115,115,115
|
|
DD 115,115,115,115,115,115,115,115,115,115
|
|
DD 115,115,115,208,208,208,208,4
|
|
|
|
_isalnum:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_isalpha:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,2
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_iscntrl:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,4
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_isdigit:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,8
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_isgraph:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,16
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_islower:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_isprint:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,64
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_ispunct:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,128
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_isspace:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,256
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_isupper:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,512
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_isxdigit:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
MOV EAX,__is
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
SHL EAX,1
|
|
SHL EAX,1
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1024
|
|
AND EAX,EBX
|
|
POP EBP
|
|
RET
|
|
|
|
_itoa:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JL _lib_151
|
|
JMP _lib_150
|
|
_lib_151:
|
|
LEA EAX,[EBP+12]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
NEG EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_150:
|
|
_lib_152:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
MOV EAX,EDX
|
|
MOV EBX,48
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+12]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JG _lib_154
|
|
JMP _lib_153
|
|
_lib_154:
|
|
JMP _lib_152
|
|
_lib_153:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JL _lib_156
|
|
JMP _lib_155
|
|
_lib_156:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
DEC EAX
|
|
MOV EBX,EAX
|
|
MOV EAX,45
|
|
MOV [EBX],AL
|
|
_lib_155:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _reverse
|
|
ADD ESP,4
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_itoab:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+8]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
_lib_158:
|
|
LEA EAX,[EBP-8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
AND EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
MOV EBX,EAX
|
|
MOV EAX,32767
|
|
AND EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
MOV EAX,EDX
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAL EAX,CL
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _lib_161
|
|
JMP _lib_160
|
|
_lib_161:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,48
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
JMP _lib_162
|
|
_lib_160:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
MOV EBX,55
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
_lib_162:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JNE _lib_163
|
|
JMP _lib_159
|
|
_lib_163:
|
|
JMP _lib_158
|
|
_lib_159:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
MOV CL,1
|
|
CALL _reverse
|
|
ADD ESP,4
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_itod:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JL _lib_166
|
|
JMP _lib_165
|
|
_lib_166:
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
NEG EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,45
|
|
MOV [EBX],AL
|
|
JMP _lib_167
|
|
_lib_165:
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
MOV [EBX],AL
|
|
_lib_167:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JG _lib_169
|
|
JMP _lib_168
|
|
_lib_169:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
JMP _lib_170
|
|
_lib_168:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JL _lib_172
|
|
JMP _lib_171
|
|
_lib_172:
|
|
LEA EAX,[EBP+8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
NEG EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_173
|
|
_lib_171:
|
|
_lib_174:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_176
|
|
JMP _lib_175
|
|
_lib_176:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_174
|
|
_lib_175:
|
|
_lib_173:
|
|
_lib_170:
|
|
_lib_177:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_179
|
|
JMP _lib_178
|
|
_lib_179:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
MOV EAX,EDX
|
|
MOV EBX,48
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JE _lib_181
|
|
JMP _lib_180
|
|
_lib_181:
|
|
JMP _lib_178
|
|
_lib_180:
|
|
JMP _lib_177
|
|
_lib_178:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_183
|
|
JMP _lib_182
|
|
_lib_183:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
_lib_182:
|
|
_lib_184:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JG _lib_186
|
|
JMP _lib_185
|
|
_lib_186:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
MOV [EBX],AL
|
|
JMP _lib_184
|
|
_lib_185:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_itoo:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JG _lib_189
|
|
JMP _lib_188
|
|
_lib_189:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
JMP _lib_190
|
|
_lib_188:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JL _lib_192
|
|
JMP _lib_191
|
|
_lib_192:
|
|
LEA EAX,[EBP+8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
NEG EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_193
|
|
_lib_191:
|
|
_lib_194:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_196
|
|
JMP _lib_195
|
|
_lib_196:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_194
|
|
_lib_195:
|
|
_lib_193:
|
|
_lib_190:
|
|
_lib_197:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_199
|
|
JMP _lib_198
|
|
_lib_199:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,7
|
|
AND EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,3
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
MOV EBX,EAX
|
|
MOV EAX,8191
|
|
AND EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,48
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JE _lib_201
|
|
JMP _lib_200
|
|
_lib_201:
|
|
JMP _lib_198
|
|
_lib_200:
|
|
JMP _lib_197
|
|
_lib_198:
|
|
_lib_202:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_204
|
|
JMP _lib_203
|
|
_lib_204:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
MOV [EBX],AL
|
|
JMP _lib_202
|
|
_lib_203:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_itou:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-4
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JG _lib_207
|
|
JMP _lib_206
|
|
_lib_207:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
JMP _lib_208
|
|
_lib_206:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JL _lib_210
|
|
JMP _lib_209
|
|
_lib_210:
|
|
LEA EAX,[EBP+8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
NEG EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_211
|
|
_lib_209:
|
|
_lib_212:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_214
|
|
JMP _lib_213
|
|
_lib_214:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_212
|
|
_lib_213:
|
|
_lib_211:
|
|
_lib_208:
|
|
_lib_215:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_217
|
|
JMP _lib_216
|
|
_lib_217:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
AND EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAR EAX,CL
|
|
MOV EBX,EAX
|
|
MOV EAX,32767
|
|
AND EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,5
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
MOV EAX,EDX
|
|
MOV EBX,EAX
|
|
MOV EAX,1
|
|
MOV ECX,EAX
|
|
MOV EAX,EBX
|
|
SAL EAX,CL
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,48
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,5
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
OR EAX,EAX
|
|
JE _lib_219
|
|
JMP _lib_218
|
|
_lib_219:
|
|
JMP _lib_216
|
|
_lib_218:
|
|
JMP _lib_215
|
|
_lib_216:
|
|
_lib_220:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_222
|
|
JMP _lib_221
|
|
_lib_222:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
MOV [EBX],AL
|
|
JMP _lib_220
|
|
_lib_221:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
_itox:
|
|
PUSH EBP
|
|
MOV EBP,ESP
|
|
ADD ESP,-8
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JG _lib_225
|
|
JMP _lib_224
|
|
_lib_225:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
XOR EAX,EAX
|
|
MOV [EBX],AL
|
|
JMP _lib_226
|
|
_lib_224:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JL _lib_228
|
|
JMP _lib_227
|
|
_lib_228:
|
|
LEA EAX,[EBP+8]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
NEG EAX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
JMP _lib_229
|
|
_lib_227:
|
|
_lib_230:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOVSX EAX,BYTE [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_232
|
|
JMP _lib_231
|
|
_lib_232:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
INC EAX
|
|
MOV [EBX],EAX
|
|
JMP _lib_230
|
|
_lib_231:
|
|
_lib_229:
|
|
_lib_226:
|
|
_lib_233:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_235
|
|
JMP _lib_234
|
|
_lib_235:
|
|
LEA EAX,[EBP-4]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,15
|
|
AND EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP+16]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,16
|
|
XCHG EAX,EBX
|
|
CDQ
|
|
IDIV EBX
|
|
POP EBX
|
|
MOV [EBX],EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV EBX,EAX
|
|
MOV EAX,10
|
|
CALL __lt
|
|
OR EAX,EAX
|
|
JNE _lib_237
|
|
JMP _lib_236
|
|
_lib_237:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX,48
|
|
MOV [EBX],EAX
|
|
JMP _lib_238
|
|
_lib_236:
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX,55
|
|
MOV [EBX],EAX
|
|
_lib_238:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
PUSH EAX
|
|
LEA EAX,[EBP-4]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP-8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
POP EBX
|
|
MOV [EBX],AL
|
|
LEA EAX,[EBP+16]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JE _lib_240
|
|
JMP _lib_239
|
|
_lib_240:
|
|
JMP _lib_234
|
|
_lib_239:
|
|
JMP _lib_233
|
|
_lib_234:
|
|
_lib_241:
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
OR EAX,EAX
|
|
JNE _lib_243
|
|
JMP _lib_242
|
|
_lib_243:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
PUSH EAX
|
|
LEA EAX,[EBP+8]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
DEC EAX
|
|
MOV [EBX],EAX
|
|
POP EBX
|
|
ADD EAX,EBX
|
|
MOV EBX,EAX
|
|
MOV EAX,32
|
|
MOV [EBX],AL
|
|
JMP _lib_241
|
|
_lib_242:
|
|
LEA EAX,[EBP+12]
|
|
MOV EBX,EAX
|
|
MOV EAX, [EBX]
|
|
MOV ESP,EBP
|
|
POP EBP
|
|
RET
|
|
|
|
__iob:
|
|
times 3*32 db 0x0
|