Function at 0x1007420
Capabilities:
Get memory capacity
Terminate process

Disassembly:
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x1001120
call dword [sym.imp.msvcrt.dll_fputs]
add esp, 8
test eax, eax
jle 0x1005363
push 0xd
call dword [sym.imp.msvcrt.dll_exit]
push 0xffffffffffffffff
call dword [sym.imp.msvcrt.dll_exit]
int3
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x17c
xor eax, eax
push ebx
xor ebx, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x11], al
mov eax, dword [ebp + 8]
cmp eax, 2
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x18], ebx
jne 0x10074d4
mov eax, dword [edi + 4]
mov ecx, 0x10051c8
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10074ae
cmp dx, bx
je 0x10074aa
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10074ae
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1007488
xor eax, eax
jmp 0x10074b3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x10074e0
push 7
push 5
push 1
push 0x1004af0
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 1
jle 0x100817d
lea ecx, [ecx]
sub dword [ebp + 8], 1
mov edx, dword [edi + 4]
add edi, 4
mov eax, edx
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10074f0
sub eax, esi
sar eax, 1
cmp eax, 2
jne case.default.0x100818c
cmp word [edx], 0x2d
jne case.default.0x100818c
movzx eax, word [edx + 2]
movzx ecx, ax
add ecx, 0xffffffbc
cmp ecx, 0x35
ja case.default.0x100818c
movzx ecx, byte [ecx + 0x10087d8]
jmp dword [ecx*4 + 0x1008790]
cmp dword [ebp - 8], ebx
jne case.default.0x100818c
mov dword [ebp - 8], 1
jmp 0x1008173
cmp dword [ebp - 8], ebx
jne case.default.0x100818c
cmp ax, 0x44
mov dword [ebp - 8], 2
mov ecx, 1
jne 0x1007566
mov dword [ebp - 0x4c], ecx
cmp ax, 0x52
jne 0x1008173
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x58], ecx
jmp 0x1008173
cmp dword [ebp - 8], ebx
jne case.default.0x100818c
mov dword [ebp - 8], 3
jmp 0x1008173
cmp dword [ebp - 8], ebx
jne case.default.0x100818c
mov dword [ebp - 8], 4
jmp 0x1008173
mov edx, dword [ebp - 4]
and edx, 0xf00
neg edx
sbb edx, edx
xor eax, eax
neg edx
cmp dword [ebp - 8], 1
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x100818c
mov esi, dword [edi + 4]
mov ecx, 0x1004ae4
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1007606
cmp dx, bx
je 0x1007602
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1007606
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x10075e0
xor eax, eax
jmp 0x100760b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100761b
or dword [ebp - 4], 0x100
jmp case.0x1007fa3.0
mov ecx, 0x1004adc
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1007648
cmp dx, bx
je 0x1007644
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1007648
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1007622
xor eax, eax
jmp 0x100764d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100765d
or dword [ebp - 4], 0x200
jmp case.0x1007fa3.0
mov ecx, 0x1004ad0
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100768a
cmp dx, bx
je 0x1007686
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100768a
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1007664
xor eax, eax
jmp 0x100768f
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne case.default.0x100818c
or dword [ebp - 4], 0x300
jmp case.0x1007fa3.0
mov dword [ebp - 0x54], 1
jmp 0x1008173
mov esi, dword [ebp - 8]
xor edx, edx
cmp esi, 4
setne dl
xor eax, eax
cmp esi, 1
setne al
xor ecx, ecx
and edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x100818c
mov edx, dword [edi + 4]
push 0x1004acc
push edx
call dword [sym.imp.msvcrt.dll_wcstok]
add esp, 8
cmp eax, ebx
je case.0x1007fa3.0
nop
mov edx, 0x1004ac4
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x100771d
cmp si, bx
je 0x1007719
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100771d
add ecx, 4
add edx, 4
cmp si, bx
jne 0x10076f7
xor ecx, ecx
jmp 0x1007722
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1007740
test byte [ebp - 0x18], 1
jne case.default.0x100818c
mov eax, 1
or dword [ebp - 0x18], eax
or dword [ebp - 4], eax
jmp 0x1007ac7
mov edx, 0x1004abc
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x100776d
cmp si, bx
je 0x1007769
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100776d
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1007747
xor ecx, ecx
jmp 0x1007772
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x100778d
test byte [ebp - 0x18], 1
jne case.default.0x100818c
or dword [ebp - 0x18], 1
and dword [ebp - 4], 0xfffffffe
jmp 0x1007ac7
mov edx, 0x1004ab4
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x10077ba
cmp si, bx
je 0x10077b6
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x10077ba
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1007794
xor ecx, ecx
jmp 0x10077bf
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x10077dd
test byte [ebp - 0x18], 2
jne case.default.0x100818c
mov eax, 2
or dword [ebp - 0x18], eax
or dword [ebp - 4], eax
jmp 0x1007ac7
mov edx, 0x1004aac
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x100780a
cmp si, bx
je 0x1007806
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100780a
add ecx, 4
add edx, 4
cmp si, bx
jne 0x10077e4
xor ecx, ecx
jmp 0x100780f
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x100782a
test byte [ebp - 0x18], 2
jne case.default.0x100818c
or dword [ebp - 0x18], 2
and dword [ebp - 4], 0xfffffffd
jmp 0x1007ac7
mov edx, 0x1004aa0
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x1007857
cmp si, bx
je 0x1007853
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1007857
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1007831
xor ecx, ecx
jmp 0x100785c
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x100787d
cmp dword [ebp - 8], 4
jne case.default.0x100818c
or dword [ebp - 0x18], 0x10000
and dword [ebp - 4], 0xfffeffff
jmp 0x1007ac7
cmp dword [ebp - 8], 1
jne case.default.0x100818c
mov edx, 0x1004a98
mov ecx, eax
mov edi, edi
mov si, word [ecx]
cmp si, word [edx]
jne 0x10078b6
cmp si, bx
je 0x10078b2
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x10078b6
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1007890
xor ecx, ecx
jmp 0x10078bb
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1007902
mov eax, dword [ebp - 4]
mov ecx, eax
and ecx, 0xf000
neg ecx
sbb ecx, ecx
mov edx, eax
xor eax, eax
and edx, 0xf00
neg ecx
cmp edx, 0x300
setne al
or ecx, eax
mov eax, dword [ebp - 4]
jne case.default.0x100818c
or eax, 0x2000
mov dword [ebp - 0x44], 1
mov dword [ebp - 4], eax
jmp 0x1007ac7
mov edx, 0x1004a8c
mov ecx, eax
lea esp, [esp]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1007936
cmp si, bx
je 0x1007932
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1007936
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1007910
xor ecx, ecx
jmp 0x100793b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1007982
mov eax, dword [ebp - 4]
mov ecx, eax
and ecx, 0xf000
neg ecx
sbb ecx, ecx
mov edx, eax
xor eax, eax
and edx, 0xf00
neg ecx
cmp edx, 0x300
setne al
or ecx, eax
mov eax, dword [ebp - 4]
jne case.default.0x100818c
or eax, 0x1000
mov dword [ebp - 0x44], 1
mov dword [ebp - 4], eax
jmp 0x1007ac7
mov edx, 0x1004a84
mov ecx, eax
lea esp, [esp]
mov si, word [ecx]
cmp si, word [edx]
jne 0x10079b6
cmp si, bx
je 0x10079b2
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x10079b6
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1007990
xor ecx, ecx
jmp 0x10079bb
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x10079fb
mov eax, dword [ebp - 4]
mov ecx, eax
and ecx, 0xf000
neg ecx
sbb ecx, ecx
mov edx, eax
xor eax, eax
and edx, 0xf00
neg ecx
cmp edx, 0x300
setne al
or ecx, eax
mov eax, dword [ebp - 4]
jne case.default.0x100818c
or eax, 0x3000
mov dword [ebp - 4], eax
jmp 0x1007ac7
test byte [ebp - 4], 0xf0
jne case.default.0x100818c
mov edx, 0x1004a7c
mov ecx, eax
lea esp, [esp]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1007a36
cmp si, bx
je 0x1007a32
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1007a36
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1007a10
xor ecx, ecx
jmp 0x1007a3b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1007a48
or dword [ebp - 4], 0x10
jmp 0x1007ac7
mov edx, 0x1004a74
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x1007a76
cmp si, bx
je 0x1007a72
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1007a76
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1007a50
xor ecx, ecx
jmp 0x1007a7b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1007a85
or dword [ebp - 4], 0x20
jmp 0x1007ac7
mov ecx, 0x1004a6c
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1007ab6
cmp dx, bx
je 0x1007ab2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1007ab6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1007a90
xor eax, eax
jmp 0x1007abb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne case.default.0x100818c
or dword [ebp - 4], 0x30
push 0x1004acc
push ebx
call dword [sym.imp.msvcrt.dll_wcstok]
add esp, 8
cmp eax, ebx
jne 0x10076f0
jmp case.0x1007fa3.0
xor ecx, ecx
cmp dword [ebp - 0x3c], ebx
setne cl
xor edx, edx
cmp dword [ebp - 8], 1
setne dl
or ecx, edx
xor edx, edx
cmp dword [ebp + 8], 2
setl dl
or ecx, edx
jne case.default.0x100818c
cmp ax, 0x46
jne 0x1007b14
mov dword [ebp - 0x44], 1
mov eax, dword [edi + 4]
mov dword [ebp - 0x3c], eax
jmp case.0x1007fa3.0
mov eax, dword [ebp - 0x34]
or eax, dword [ebp - 0x30]
je 0x1007b2e
mov eax, 1
jmp 0x1007b30
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 8], 4
setne cl
xor edx, edx
cmp dword [ebp - 8], 1
setne dl
and ecx, edx
xor edx, edx
cmp dword [ebp + 8], 2
setl dl
or ecx, edx
or ecx, eax
jne case.default.0x100818c
mov edx, dword [edi + 4]
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x34]
push ecx
push 0x1004a5c
push edx
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.msvcrt.dll_swscanf]
mov ecx, dword [ebp - 0x1c]
movzx eax, cx
add esp, 0x10
cmp eax, 0x74
ja case.0x1007b8a.1
movzx eax, byte [eax + 0x1008840]
jmp dword [eax*4 + 0x1008810]
mov eax, dword [ebp - 0x30]
cmp eax, ebx
mov edx, dword [ebp - 0x34]
jg 0x1007ba8
jl 0x1007ba1
cmp edx, ebx
ja 0x1007ba8
mov ecx, 1
jmp 0x1007baa
xor ecx, ecx
cmp eax, ebx
jl 0x1007bbc
jg 0x1007bb5
cmp edx, 0x64
jb 0x1007bbc
mov eax, 1
jmp 0x1007bbe
xor eax, eax
or ecx, eax
jne case.default.0x100818c
lea ecx, [ebp - 0x7c]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x70]
push edx
push eax
push ebx
push ecx
call fcn.01008ae0
push ebx
push 0x64
push edx
push eax
call fcn.01008a30
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x1007d28
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
mov edx, ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x1007d28
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
mov edx, ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x1007d28
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
mov edx, ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x1007d28
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
shld ecx, eax, 0xa
shl eax, 0xa
mov edx, ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x1007d28
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
shld edx, eax, 9
shl eax, 9
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], eax
jmp 0x1007d28
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
jmp 0x1007d0d
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
jmp 0x1007d0d
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
jmp 0x1007d0d
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x1007d28
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
cmp edx, ebx
jg case.0x1007fa3.0
jl 0x1007d3a
cmp eax, ebx
jae case.0x1007fa3.0
lea ecx, [ebp - 0x7c]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, dword [ebp - 0x70]
add dword [ebp - 0x34], eax
adc dword [ebp - 0x30], ebx
js 0x1007d5e
jg case.0x1007fa3.0
cmp dword [ebp - 0x34], ebx
jae case.0x1007fa3.0
xor ecx, ecx
cmp ecx, 0x100
jb 0x1008193
ja 0x1007d76
cmp eax, ebx
jb 0x1008193
mov edx, 0x10046bc
jmp 0x10081cc
xor edx, edx
cmp dword [ebp - 0x20], ebx
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 8], esi
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x100818c
mov edx, dword [edi + 4]
movzx eax, word [edx]
push 4
push eax
call dword [sym.imp.msvcrt.dll_iswctype]
add esp, 8
test eax, eax
je case.default.0x100818c
mov ecx, dword [edi + 4]
push ebx
push ebx
push ecx
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
sub dword [ebp + 8], esi
mov dword [ebp - 0x20], eax
jmp 0x1008170
xor edx, edx
cmp dword [ebp - 0x24], ebx
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 8], esi
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x100818c
mov edx, dword [edi + 4]
movzx eax, word [edx]
push 4
push eax
call dword [sym.imp.msvcrt.dll_iswctype]
add esp, 8
test eax, eax
je case.default.0x100818c
mov ecx, dword [edi + 4]
push ebx
push ebx
push ecx
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
sub dword [ebp + 8], esi
mov dword [ebp - 0x24], eax
jmp 0x1008170
xor edx, edx
cmp dword [ebp - 0x28], ebx
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 8], esi
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x100818c
mov edx, dword [edi + 4]
movzx eax, word [edx]
push 4
push eax
call dword [sym.imp.msvcrt.dll_iswctype]
add esp, 8
test eax, eax
je case.default.0x100818c
mov ecx, dword [edi + 4]
push ebx
push ebx
push ecx
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
sub dword [ebp + 8], esi
mov dword [ebp - 0x28], eax
jmp 0x1008170
xor edx, edx
cmp byte [ebp - 0x11], bl
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 8], esi
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x100818c
mov eax, dword [edi + 4]
movzx ecx, word [eax]
mov edx, 0x38
cmp dx, cx
sbb edx, edx
neg edx
cmp cx, 0x31
sbb ecx, ecx
neg ecx
or edx, ecx
jne case.default.0x100818c
cmp word [eax + 2], bx
jne case.default.0x100818c
mov al, byte [eax]
sub al, 0x30
sub dword [ebp + 8], esi
mov byte [ebp - 0x11], al
jmp 0x1008170
mov edx, dword [ebp - 0x10]
or edx, dword [ebp - 0xc]
je 0x1007f06
mov eax, 1
jmp 0x1007f08
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0x50], ebx
setne cl
xor edx, edx
cmp dword [ebp - 8], 1
setne dl
or ecx, edx
xor edx, edx
cmp dword [ebp + 8], 2
setl dl
or ecx, edx
or ecx, eax
jne case.default.0x100818c
mov esi, dword [edi + 4]
mov ecx, 0x1004a50
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1007f5e
cmp dx, bx
je 0x1007f5a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1007f5e
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1007f38
xor eax, eax
jmp 0x1007f63
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1007f73
mov dword [ebp - 0x50], 1
jmp case.0x1007fa3.0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x10]
push ecx
push 0x1004a40
push esi
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.msvcrt.dll_swscanf]
mov esi, dword [ebp - 0x1c]
movzx eax, si
add esp, 0x10
cmp eax, 0x74
ja case.0x1007fa3.1
movzx edx, byte [eax + 0x10088e4]
jmp dword [edx*4 + 0x10088b8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
jmp case.0x1007fa3.0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
jmp case.0x1007fa3.0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
jmp case.0x1007fa3.0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
jmp case.0x1007fa3.0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
shld ecx, eax, 9
shl eax, 9
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
jmp case.0x1007fa3.0
xor eax, eax
cmp dword [ebp - 0x48], ebx
mov esi, 1
setne al
xor ecx, ecx
cmp dword [ebp - 8], esi
setne cl
xor edx, edx
or eax, ecx
cmp dword [ebp + 8], 2
setl dl
or eax, edx
jne case.default.0x100818c
mov eax, dword [edi + 4]
sub dword [ebp + 8], esi
mov dword [ebp - 0x48], eax
jmp 0x1008170
xor ecx, ecx
cmp dword [ebp - 0x40], ebx
mov esi, 1
setne cl
xor edx, edx
cmp dword [ebp - 8], esi
setne dl
xor eax, eax
and ecx, edx
cmp dword [ebp - 0x38], 0xffffffff
setne al
xor edx, edx
or ecx, eax
cmp dword [ebp + 8], 2
setl dl
or ecx, edx
jne case.default.0x100818c
mov eax, dword [edi + 4]
movzx ecx, word [eax]
push 4
push ecx
call dword [sym.imp.msvcrt.dll_iswctype]
add esp, 8
test eax, eax
je case.default.0x100818c
mov edx, dword [edi + 4]
push ebx
push ebx
push edx
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
sub dword [ebp + 8], esi
mov dword [ebp - 0x38], eax
jmp 0x1008170
xor eax, eax
cmp dword [ebp - 0x38], 0xffffffff
setne al
xor ecx, ecx
cmp dword [ebp - 8], 1
setne cl
xor edx, edx
and eax, ecx
cmp dword [ebp - 0x40], ebx
setne dl
xor ecx, ecx
or eax, edx
cmp dword [ebp + 8], 2
setl cl
or eax, ecx
jne case.default.0x100818c
mov esi, dword [edi + 4]
mov dword [ebp - 0x40], esi
mov ecx, 0x1004a38
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100814b
cmp dx, bx
je 0x1008147
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100814b
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1008125
xor eax, eax
jmp 0x1008150
sbb eax, eax
sbb eax, 0xffffffff
xor edx, edx
cmp eax, ebx
sete dl
xor eax, eax
cmp dword [ebp - 8], 1
sete al
test eax, edx
je case.0x1007fa3.0
call sub.imdisk.cpl__ImDiskFindFreeDriveLetter_0
mov word [esi], ax
sub dword [ebp + 8], 1
add edi, 4
cmp dword [ebp + 8], 1
jg 0x10074e0
mov eax, dword [ebp - 8]
add eax, 0xffffffff
cmp eax, 3
ja case.default.0x100818c
jmp dword [eax*4 + 0x100895c]
cmp eax, 0x40000000
jb 0x10081a1
mov edx, 0x10046b8
jmp 0x10081cc
cmp eax, 0x100000
jb 0x10081af
mov edx, 0x10046b4
jmp 0x10081cc
cmp eax, 0x400
jb 0x10081bd
mov edx, 0x10046b0
jmp 0x10081cc
cmp eax, 1
mov edx, 0x10046a8
je 0x10081cc
mov edx, 0x10046a0
cmp ecx, 0x100
jb 0x10081f2
ja 0x10081da
cmp eax, ebx
jb 0x10081f2
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x10081ea
fadd qword [0x1004a30]
fmul qword [0x1004698]
jmp 0x100825f
cmp eax, 0x40000000
jb 0x1008211
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x1008209
fadd qword [0x1004a30]
fmul qword [0x1004690]
jmp 0x100825f
cmp eax, 0x100000
jb 0x1008230
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x1008228
fadd qword [0x1004a30]
fmul qword [0x1004688]
jmp 0x100825f
cmp eax, 0x400
jb 0x100824f
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x1008247
fadd qword [0x1004a30]
fmul qword [0x1004680]
jmp 0x100825f
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x100825f
fadd qword [0x1004a30]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push edx
sub esp, 8
fstp qword [esp]
add ecx, 0x40
push 0x10049e0
push ecx
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 0x14
pop edi
pop esi
mov eax, 0xb
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [sym.imp.msvcrt.dll__iob]
movzx edx, cx
push edx
add eax, 0x40
push 0x10049b4
push eax
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 0xc
pop edi
pop esi
mov eax, 0xa
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
push ebx
push 0x3e8
push ecx
push edx
call fcn.01008ae0
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
jmp 0x100831d
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
jmp 0x100831d
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
jmp 0x100831d
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
push ebx
push 0x3e8
push edx
push eax
call fcn.01008ae0
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov ecx, dword [sym.imp.msvcrt.dll__iob]
movzx eax, si
push eax
add ecx, 0x40
push 0x10049b4
push ecx
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 0xc
pop edi
pop esi
mov eax, 0xa
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x50]
cmp esi, ebx
mov edi, dword [ebp - 0x3c]
je 0x1008375
cmp edi, ebx
jne 0x100836b
jmp 0x1005340
lea edx, [ebp - 0x10]
push edx
push edi
call sub.imdisk.cpl__ImDiskGetOffsetByFileExt_8
cmp byte [ebp - 0x11], bl
je 0x1008432
movzx ebx, byte [ebp - 0x11]
mov eax, ebx
shl eax, 5
lea ecx, [ebp - 0x17c]
push ecx
mov ecx, dword [ebp - 0x3c]
lea edx, [ebp - 0x10]
lea esi, [ebp + eax - 0x19c]
mov eax, dword [ebp - 0x20]
push edx
push eax
push ecx
call sub.imdisk.cpl__ImDiskGetPartitionInformation_16
test eax, eax
jne 0x10083ce
mov edx, dword [sym.imp.msvcrt.dll__iob]
add edx, 0x40
push edx
push 0x1004990
call dword [sym.imp.msvcrt.dll_fputs]
add esp, 8
pop edi
pop esi
mov eax, 0xc
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi]
mov edi, dword [esi + 4]
mov eax, edx
or eax, edi
jne 0x10083e0
mov eax, 1
jmp 0x10083e2
xor eax, eax
mov ecx, dword [esi + 8]
or ecx, dword [esi + 0xc]
jne 0x10083f1
mov ecx, 1
jmp 0x10083f3
xor ecx, ecx
or eax, ecx
je 0x100841c
mov edx, dword [sym.imp.msvcrt.dll__iob]
push ebx
add edx, 0x40
push 0x1004968
push edx
call dword [sym.imp.msvcrt.dll_fprintf]
add esp, 0xc
pop edi
pop esi
mov eax, 0xc
pop ebx
mov esp, ebp
pop ebp
ret
add dword [ebp - 0x10], edx
adc dword [ebp - 0xc], edi
mov eax, dword [esi + 8]
mov dword [ebp - 0x34], eax
mov ecx, dword [esi + 0xc]
xor ebx, ebx
jmp 0x10084bb
cmp esi, ebx
je 0x10084c1
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x17c]
push edx
lea eax, [ebp - 0x10]
push eax
push ecx
push edi
call sub.imdisk.cpl__ImDiskGetPartitionInformation_16
test eax, eax
je 0x10084c1
lea ecx, [ebp - 0x17c]
lea esp, [esp]
mov edx, dword [ecx]
or edx, dword [ecx + 4]
je 0x100846e
mov esi, 1
jmp 0x1008470
xor esi, esi
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x100847f
mov edx, 1
jmp 0x1008481
xor edx, edx
mov al, byte [ecx + 0x18]
cmp al, 5
je 0x1008493
cmp al, 0xf
je 0x1008493
mov eax, 1
jmp 0x1008495
xor eax, eax
and eax, esi
test edx, eax
jne 0x10084a7
add ecx, 0x20
lea edx, [ebp - 0x7c]
cmp ecx, edx
jb 0x1008460
jmp 0x10084be
mov eax, dword [ecx]
add dword [ebp - 0x10], eax
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 8]
adc dword [ebp - 0xc], edx
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ecx
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
push esi
push edx
push edi
push eax
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x38]
push eax
call fcn.01005550
cmp eax, ebx
jne 0x10074cd
cmp dword [ebp - 0x54], ebx
je 0x1008500
mov ecx, dword [ebp - 0x38]
push ecx
push 0x1004964
call dword [sym.imp.msvcrt.dll_printf]
add esp, 8
jmp 0x1008532
cmp edi, ebx
mov ecx, 0x1004950
je 0x100850b
mov ecx, edi
cmp esi, ebx
mov eax, 0x1004934
je 0x1008516
mov eax, esi
mov edx, dword [ebp - 0x38]
push ecx
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
push edx
add eax, 0x20
push 0x100490c
push eax
call fcn.01005380
add esp, 0x14
mov eax, dword [ebp - 0x48]
cmp eax, ebx
mov edi, dword [sym.imp.msvcrt.dll_puts]
je 0x100854a
cmp esi, ebx
je 0x100857a
push eax
push esi
call fcn.01005c80
cmp esi, ebx
je 0x10086a8
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x1008557
sub eax, edx
sar eax, 1
cmp eax, 2
jne 0x10085a5
xor eax, eax
cmp word [esi + 2], 0x3a
sete al
jmp 0x1008604
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
push ecx
push 0x10048a0
call dword [sym.imp.msvcrt.dll_fputs]
add esp, 8
push 0x10042d8
call edi
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10085b0
sub eax, edx
sar eax, 1
cmp eax, 3
jne 0x10086a8
mov ecx, 0x1003f64
lea eax, [esi + 2]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10085f6
cmp dx, bx
je 0x10085f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10085f6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x10085d0
xor eax, eax
jmp 0x10085fb
sbb eax, eax
sbb eax, 0xffffffff
xor edx, edx
cmp eax, ebx
sete dl
mov eax, edx
cmp eax, ebx
je 0x10086a8
xor eax, eax
push 0x1004518
mov dword [ebp - 0x70], 0x14
mov dword [ebp - 0x6c], 2
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
call edi
mov eax, dword [ebp - 0x40]
movzx ecx, word [eax]
mov esi, dword [sym.imp.USER32.dll_SendMessageTimeoutW]
add esp, 4
lea eax, [ebp + 8]
push eax
push 0xfa0
sub ecx, 0x41
push 3
mov edx, 1
shl edx, cl
lea ecx, [ebp - 0x70]
push ecx
push 0x8000
push 0x219
push 0xffff
mov dword [ebp - 0x64], edx
call esi
lea edx, [ebp + 8]
push edx
push 0xfa0
push 3
lea eax, [ebp - 0x70]
push eax
push 0x8000
push 0x219
push 0xffff
mov word [ebp - 0x60], 1
call esi
lea ecx, [ebp + 8]
push ecx
push 0xfa0
push 3
push ebx
push 7
push 0x219
push 0xffff
call esi
push 0x10042d8
call edi
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x38]
xor edx, edx
cmp eax, ebx
sete dl
xor ecx, ecx
or edx, edi
cmp esi, 0xffffffff
sete cl
test ecx, edx
je 0x10086de
jmp 0x1005340
mov edx, dword [ebp - 0x4c]
push edi
push edx
push eax
push esi
call fcn.01005e30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x40]
xor eax, eax
cmp edi, 0xffffffff
sete al
xor ecx, ecx
cmp esi, ebx
sete cl
test ecx, eax
je 0x1008721
mov edx, dword [ebp - 0x54]
push edx
call fcn.010065e0
neg eax
pop edi
sbb eax, eax
pop esi
add eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push edi
call fcn.01006690
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x40]
xor eax, eax
cmp edi, 0xffffffff
sete al
xor ecx, ecx
cmp esi, ebx
sete cl
test ecx, eax
je 0x100874d
jmp 0x1005340
cmp dword [ebp - 0x18], ebx
je 0x1008763
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
push edx
push eax
push esi
push edi
call fcn.01006bf0
jmp 0x1008765
mov eax, ebx
mov ecx, dword [ebp - 0x30]
cmp ecx, ebx
jl 0x10074cd
jg 0x100877b
cmp dword [ebp - 0x34], ebx
jbe 0x10074cd
push ecx
mov ecx, dword [ebp - 0x34]
push ecx
push esi
push edi
call fcn.01006fa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret