Function at 0x1008470
Capabilities:
Terminate process

Disassembly:
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x1001180
call dword [sym.imp.msvcrt.dll_fputs]
add esp, 8
test eax, eax
jle 0x1006313
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, 0x80
xor eax, eax
push ebx
xor ebx, ebx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 8]
cmp eax, 2
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x24], ebx
mov byte [ebp - 1], bl
mov dword [ebp - 0x10], ebx
jne 0x100852c
mov eax, dword [edi + 4]
mov ecx, 0x1006178
jmp 0x10084e0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1008506
cmp dx, bx
je 0x1008502
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1008506
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x10084e0
xor eax, eax
jmp 0x100850b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1008535
push 1
push 1
push 2
push 0x1005ac0
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 0x10093de
sub dword [ebp + 8], 1
mov edx, dword [edi + 4]
add edi, 4
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x1008544
sub eax, esi
sar eax, 1
cmp eax, 2
jne case.default.0x10093ed
cmp word [edx], 0x2d
jne case.default.0x10093ed
movzx eax, word [edx + 2]
movzx ecx, ax
add ecx, 0xffffffbc
cmp ecx, 0x35
ja case.default.0x10093ed
movzx ecx, byte [ecx + 0x10098e4]
jmp dword [ecx*4 + 0x1009898]
cmp dword [ebp - 0xc], ebx
jne case.default.0x10093ed
mov dword [ebp - 0xc], 1
jmp 0x10093d4
cmp dword [ebp - 0xc], ebx
jne case.default.0x10093ed
cmp ax, 0x44
mov dword [ebp - 0xc], 2
mov ecx, 1
jne 0x10085ba
mov dword [ebp - 0x34], ecx
cmp ax, 0x52
jne 0x10093d4
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
jmp 0x10093d4
cmp dword [ebp - 0xc], ebx
jne case.default.0x10093ed
mov dword [ebp - 0xc], 3
jmp 0x10093d4
cmp dword [ebp - 0xc], ebx
jne case.default.0x10093ed
mov dword [ebp - 0xc], 4
jmp 0x10093d4
mov edx, dword [ebp - 8]
and edx, 0xf00
neg edx
sbb edx, edx
xor eax, eax
neg edx
cmp dword [ebp - 0xc], 1
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x10093ed
mov esi, dword [edi + 4]
mov ecx, 0x1005ab0
mov eax, esi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1008656
cmp dx, bx
je 0x1008652
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1008656
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1008630
xor eax, eax
jmp 0x100865b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100866f
or dword [ebp - 8], 0x100
sub dword [ebp + 8], 1
jmp 0x10093d1
mov ecx, 0x1005aa8
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100869c
cmp dx, bx
je 0x1008698
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100869c
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1008676
xor eax, eax
jmp 0x10086a1
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x10086b5
or dword [ebp - 8], 0x200
sub dword [ebp + 8], 1
jmp 0x10093d1
mov ecx, 0x1005a9c
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10086e6
cmp dx, bx
je 0x10086e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10086e6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x10086c0
xor eax, eax
jmp 0x10086eb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne case.default.0x10093ed
or dword [ebp - 8], 0x300
sub dword [ebp + 8], 1
jmp 0x10093d1
mov dword [ebp - 0x38], 1
jmp 0x10093d4
mov esi, dword [ebp - 0xc]
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.0x10093ed
mov edx, dword [edi + 4]
push 0x1005a98
push edx
call dword [sym.imp.msvcrt.dll_wcstok]
add esp, 8
cmp eax, ebx
je 0x1008d6e
nop
mov edx, 0x1005a90
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x100877d
cmp si, bx
je 0x1008779
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100877d
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008757
xor ecx, ecx
jmp 0x1008782
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x10087a0
test byte [ebp - 0x10], 1
jne case.default.0x10093ed
mov eax, 1
or dword [ebp - 0x10], eax
or dword [ebp - 8], eax
jmp 0x1008d57
mov edx, 0x1005a88
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x10087cd
cmp si, bx
je 0x10087c9
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x10087cd
add ecx, 4
add edx, 4
cmp si, bx
jne 0x10087a7
xor ecx, ecx
jmp 0x10087d2
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x10087ed
test byte [ebp - 0x10], 1
jne case.default.0x10093ed
or dword [ebp - 0x10], 1
and dword [ebp - 8], 0xfffffffe
jmp 0x1008d57
mov edx, 0x1005a78
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x100881a
cmp si, bx
je 0x1008816
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100881a
add ecx, 4
add edx, 4
cmp si, bx
jne 0x10087f4
xor ecx, ecx
jmp 0x100881f
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008833
mov eax, 4
or dword [ebp - 0x10], eax
or dword [ebp - 8], eax
jmp 0x1008d57
mov edx, 0x1005a70
mov ecx, eax
lea ebx, [ebx]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008866
cmp si, bx
je 0x1008862
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008866
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008840
xor ecx, ecx
jmp 0x100886b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008889
test byte [ebp - 0x10], 2
jne case.default.0x10093ed
mov eax, 2
or dword [ebp - 0x10], eax
or dword [ebp - 8], eax
jmp 0x1008d57
mov edx, 0x1005a68
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x10088b6
cmp si, bx
je 0x10088b2
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x10088b6
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008890
xor ecx, ecx
jmp 0x10088bb
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x10088d6
test byte [ebp - 0x10], 2
jne case.default.0x10093ed
or dword [ebp - 0x10], 2
and dword [ebp - 8], 0xfffffffd
jmp 0x1008d57
mov edx, 0x1005a5c
mov ecx, eax
lea ecx, [ecx]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008906
cmp si, bx
je 0x1008902
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008906
add ecx, 4
add edx, 4
cmp si, bx
jne 0x10088e0
xor ecx, ecx
jmp 0x100890b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x100892c
cmp dword [ebp - 0xc], 4
jne case.default.0x10093ed
or dword [ebp - 0x10], 0x10000
and dword [ebp - 8], 0xfffeffff
jmp 0x1008d57
cmp dword [ebp - 0xc], 1
jne case.default.0x10093ed
mov edx, 0x1005a54
mov ecx, eax
lea ecx, [ecx]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008966
cmp si, bx
je 0x1008962
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008966
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008940
xor ecx, ecx
jmp 0x100896b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x10089a5
mov eax, dword [ebp - 8]
mov ecx, eax
and ecx, 0xf00
cmp ecx, 0x300
jne case.default.0x10093ed
test eax, 0xf000
jne case.default.0x10093ed
or eax, 0x2000
mov dword [ebp - 0x20], 1
mov dword [ebp - 8], eax
jmp 0x1008d57
mov edx, 0x1005a48
mov ecx, eax
lea esp, [esp]
mov si, word [ecx]
cmp si, word [edx]
jne 0x10089d6
cmp si, bx
je 0x10089d2
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x10089d6
add ecx, 4
add edx, 4
cmp si, bx
jne 0x10089b0
xor ecx, ecx
jmp 0x10089db
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008a15
mov eax, dword [ebp - 8]
mov edx, eax
and edx, 0xf00
cmp edx, 0x300
jne case.default.0x10093ed
test eax, 0xf000
jne case.default.0x10093ed
or eax, 0x1000
mov dword [ebp - 0x20], 1
mov dword [ebp - 8], eax
jmp 0x1008d57
mov edx, 0x1005a40
mov ecx, eax
lea esp, [esp]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008a46
cmp si, bx
je 0x1008a42
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008a46
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008a20
xor ecx, ecx
jmp 0x1008a4b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008a7e
mov eax, dword [ebp - 8]
mov ecx, eax
and ecx, 0xf00
cmp ecx, 0x300
jne case.default.0x10093ed
test eax, 0xf000
jne case.default.0x10093ed
or eax, 0x3000
mov dword [ebp - 8], eax
jmp 0x1008d57
mov edx, 0x1005a38
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008aab
cmp si, bx
je 0x1008aa7
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008aab
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008a85
xor ecx, ecx
jmp 0x1008ab0
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008ae7
mov ecx, dword [ebp - 8]
mov eax, ecx
and eax, 0xf00
cmp eax, 0x100
je 0x1008acd
cmp eax, ebx
jne case.default.0x10093ed
test ecx, 0xf000
jne case.default.0x10093ed
or ecx, 0x1100
mov dword [ebp - 8], ecx
jmp 0x1008d57
mov edx, 0x1005a30
mov ecx, eax
mov edi, edi
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008b16
cmp si, bx
je 0x1008b12
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008b16
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008af0
xor ecx, ecx
jmp 0x1008b1b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008b52
mov ecx, dword [ebp - 8]
mov eax, ecx
and eax, 0xf00
cmp eax, 0x100
je 0x1008b38
cmp eax, ebx
jne case.default.0x10093ed
test ecx, 0xf000
jne case.default.0x10093ed
or ecx, 0x2100
mov dword [ebp - 8], ecx
jmp 0x1008d57
mov edx, 0x1005a28
mov ecx, eax
lea esp, [esp]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008b86
cmp si, bx
je 0x1008b82
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008b86
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008b60
xor ecx, ecx
jmp 0x1008b8b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008bc2
mov ecx, dword [ebp - 8]
mov eax, ecx
and eax, 0xf00
cmp eax, 0x100
je 0x1008ba8
cmp eax, ebx
jne case.default.0x10093ed
test ecx, 0xf000
jne case.default.0x10093ed
or ecx, 0x3100
mov dword [ebp - 8], ecx
jmp 0x1008d57
mov edx, 0x1005a1c
mov ecx, eax
lea esp, [esp]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008bf6
cmp si, bx
je 0x1008bf2
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008bf6
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008bd0
xor ecx, ecx
jmp 0x1008bfb
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008c08
or dword [ebp - 8], 8
jmp 0x1008d57
mov edx, 0x1005a0c
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008c36
cmp si, bx
je 0x1008c32
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008c36
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008c10
xor ecx, ecx
jmp 0x1008c3b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008c4b
or dword [ebp - 8], 0x40000
jmp 0x1008d57
test byte [ebp - 8], 0xf0
jne case.default.0x10093ed
mov edx, 0x1005a04
mov ecx, eax
lea esp, [esp]
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008c86
cmp si, bx
je 0x1008c82
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008c86
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008c60
xor ecx, ecx
jmp 0x1008c8b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008c98
or dword [ebp - 8], 0x10
jmp 0x1008d57
mov edx, 0x10059fc
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008cc6
cmp si, bx
je 0x1008cc2
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008cc6
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008ca0
xor ecx, ecx
jmp 0x1008ccb
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008cd8
or dword [ebp - 8], 0x20
jmp 0x1008d57
mov edx, 0x10059f4
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x1008d06
cmp si, bx
je 0x1008d02
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x1008d06
add ecx, 4
add edx, 4
cmp si, bx
jne 0x1008ce0
xor ecx, ecx
jmp 0x1008d0b
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x1008d15
or dword [ebp - 8], 0x30
jmp 0x1008d57
mov ecx, 0x10059ec
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1008d46
cmp dx, bx
je 0x1008d42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1008d46
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1008d20
xor eax, eax
jmp 0x1008d4b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne case.default.0x10093ed
or dword [ebp - 8], 0x40
push 0x1005a98
push ebx
call dword [sym.imp.msvcrt.dll_wcstok]
add esp, 8
cmp eax, ebx
jne 0x1008750
sub dword [ebp + 8], 1
jmp 0x10093d1
xor edx, edx
cmp dword [ebp - 0x1c], ebx
setne dl
xor ecx, ecx
cmp dword [ebp - 0xc], 1
setne cl
or edx, ecx
xor ecx, ecx
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x10093ed
cmp ax, 0x46
jne 0x1008da8
mov dword [ebp - 0x20], 1
mov edx, dword [edi + 4]
sub dword [ebp + 8], 1
mov dword [ebp - 0x1c], edx
jmp 0x10093d1
mov eax, dword [ebp - 0x60]
or eax, dword [ebp - 0x5c]
je 0x1008dc6
mov eax, 1
jmp 0x1008dc8
xor eax, eax
mov esi, dword [ebp - 0xc]
xor ecx, ecx
cmp esi, 4
setne cl
xor edx, edx
cmp esi, 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.0x10093ed
mov edx, dword [edi + 4]
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x60]
push ecx
push 0x10059dc
push edx
mov dword [ebp - 0x3c], ebx
call dword [sym.imp.msvcrt.dll_swscanf]
mov ecx, dword [ebp - 0x3c]
movzx eax, cx
add esp, 0x10
cmp eax, 0x74
ja case.0x1008e23.1
movzx eax, byte [eax + 0x100994c]
jmp dword [eax*4 + 0x100991c]
mov eax, dword [ebp - 0x5c]
cmp eax, ebx
mov edx, dword [ebp - 0x60]
jg 0x1008e41
jl 0x1008e3a
cmp edx, ebx
ja 0x1008e41
mov ecx, 1
jmp 0x1008e43
xor ecx, ecx
cmp eax, ebx
jl 0x1008e55
jg 0x1008e4e
cmp edx, 0x64
jb 0x1008e55
mov eax, 1
jmp 0x1008e57
xor eax, eax
or ecx, eax
jne case.default.0x10093ed
lea ecx, [ebp - 0x80]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x74]
push edx
push eax
push ebx
push ecx
call fcn.01009bf0
push ebx
push 0x64
push edx
push eax
call fcn.01009b40
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
jmp 0x1008fc1
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
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 - 0x60], eax
mov dword [ebp - 0x5c], edx
jmp 0x1008fc1
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
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 - 0x60], eax
mov dword [ebp - 0x5c], edx
jmp 0x1008fc1
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
mov edx, ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
jmp 0x1008fc1
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
shld ecx, eax, 0xa
shl eax, 0xa
mov edx, ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
jmp 0x1008fc1
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
shld edx, eax, 9
shl eax, 9
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x60], eax
jmp 0x1008fc1
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
jmp 0x1008fa6
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
jmp 0x1008fa6
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
jmp 0x1008fa6
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
jmp 0x1008fc1
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
cmp edx, ebx
jg 0x1008fef
jl 0x1008fcb
cmp eax, ebx
jae 0x1008fef
lea ecx, [ebp - 0x80]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, dword [ebp - 0x74]
add dword [ebp - 0x60], eax
adc dword [ebp - 0x5c], ebx
js 0x10093f4
jg 0x1008fef
cmp dword [ebp - 0x60], ebx
jb 0x10093f4
sub dword [ebp + 8], 1
jmp 0x10093d1
xor edx, edx
cmp dword [ebp - 0x4c], ebx
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 0xc], esi
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x10093ed
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.0x10093ed
mov ecx, dword [edi + 4]
push ebx
push ebx
push ecx
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
mov dword [ebp - 0x4c], eax
jmp 0x10093ce
xor edx, edx
cmp dword [ebp - 0x50], ebx
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 0xc], esi
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x10093ed
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.0x10093ed
mov ecx, dword [edi + 4]
push ebx
push ebx
push ecx
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
mov dword [ebp - 0x50], eax
jmp 0x10093ce
xor edx, edx
cmp dword [ebp - 0x54], ebx
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 0xc], esi
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x10093ed
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.0x10093ed
mov ecx, dword [edi + 4]
push ebx
push ebx
push ecx
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
mov dword [ebp - 0x54], eax
jmp 0x10093ce
xor edx, edx
cmp byte [ebp - 1], bl
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 0xc], esi
setne al
xor ecx, ecx
or edx, eax
cmp dword [ebp + 8], 2
setl cl
or edx, ecx
jne case.default.0x10093ed
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.0x10093ed
cmp word [eax + 2], bx
jne case.default.0x10093ed
mov al, byte [eax]
sub al, 0x30
mov byte [ebp - 1], al
jmp 0x10093ce
mov edx, dword [ebp - 0x48]
or edx, dword [ebp - 0x44]
je 0x1009172
mov eax, 1
jmp 0x1009174
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0x24], ebx
setne cl
xor edx, edx
cmp dword [ebp - 0xc], 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.0x10093ed
mov esi, dword [edi + 4]
mov ecx, 0x10059d0
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10091ca
cmp dx, bx
je 0x10091c6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10091ca
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x10091a4
xor eax, eax
jmp 0x10091cf
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x10091e3
sub dword [ebp + 8], 1
mov dword [ebp - 0x24], 1
jmp 0x10093d1
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x48]
push ecx
push 0x10059c0
push esi
mov dword [ebp - 0x3c], ebx
call dword [sym.imp.msvcrt.dll_swscanf]
mov esi, dword [ebp - 0x3c]
movzx eax, si
add esp, 0x10
cmp eax, 0x74
ja case.0x1009213.1
movzx edx, byte [eax + 0x10099f0]
jmp dword [edx*4 + 0x10099c4]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
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
sub dword [ebp + 8], 1
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
jmp 0x10093d1
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
sub dword [ebp + 8], 1
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
jmp 0x10093d1
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
shld ecx, eax, 0xa
shl eax, 0xa
shld ecx, eax, 0xa
shl eax, 0xa
sub dword [ebp + 8], 1
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
jmp 0x10093d1
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
shld ecx, eax, 0xa
shl eax, 0xa
sub dword [ebp + 8], 1
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
jmp 0x10093d1
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
shld ecx, eax, 9
shl eax, 9
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
sub dword [ebp + 8], 1
jmp 0x10093d1
xor eax, eax
cmp dword [ebp - 0x28], ebx
mov esi, 1
setne al
xor ecx, ecx
cmp dword [ebp - 0xc], esi
setne cl
xor edx, edx
or eax, ecx
cmp dword [ebp + 8], 2
setl dl
or eax, edx
jne case.default.0x10093ed
mov eax, dword [edi + 4]
mov dword [ebp - 0x28], eax
jmp 0x10093ce
mov esi, dword [ebp - 0xc]
xor ecx, ecx
cmp esi, 2
setne cl
xor edx, edx
cmp esi, 1
setne dl
test edx, ecx
jne case.default.0x10093ed
mov dword [ebp - 0x2c], 1
jmp 0x10093d4
xor eax, eax
cmp dword [ebp - 0x14], ebx
mov esi, 1
setne al
xor ecx, ecx
cmp dword [ebp - 0xc], esi
setne cl
xor edx, edx
and eax, ecx
cmp dword [ebp - 0x18], 0xffffffff
setne dl
xor ecx, ecx
or eax, edx
cmp dword [ebp + 8], 2
setl cl
or eax, ecx
jne case.default.0x10093ed
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.0x10093ed
mov ecx, dword [edi + 4]
push ebx
push ebx
push ecx
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
mov dword [ebp - 0x18], eax
jmp 0x10093ce
xor edx, edx
cmp dword [ebp - 0x18], 0xffffffff
mov esi, 1
setne dl
xor eax, eax
cmp dword [ebp - 0xc], esi
setne al
xor ecx, ecx
and edx, eax
cmp dword [ebp - 0x14], ebx
setne cl
xor eax, eax
or edx, ecx
cmp dword [ebp + 8], 2
setl al
or edx, eax
jne case.default.0x10093ed
mov ecx, dword [edi + 4]
push ecx
call dword [sym.imp.msvcrt.dll__wcsupr]
add esp, 4
mov dword [ebp - 0x14], eax
sub dword [ebp + 8], esi
add edi, 4
cmp dword [ebp + 8], 1
jg 0x1008535
mov eax, dword [ebp - 0xc]
add eax, 0xffffffff
cmp eax, 3
ja case.default.0x10093ed
jmp dword [eax*4 + 0x1009a68]
xor ecx, ecx
cmp ecx, 0x100
jb 0x100940b
ja 0x1009404
cmp eax, ebx
jb 0x100940b
mov edx, 0x100571c
jmp 0x1009444
cmp eax, 0x40000000
jb 0x1009419
mov edx, 0x1005718
jmp 0x1009444
cmp eax, 0x100000
jb 0x1009427
mov edx, 0x1005714
jmp 0x1009444
cmp eax, 0x400
jb 0x1009435
mov edx, 0x1005710
jmp 0x1009444
cmp eax, 1
mov edx, 0x1005708
je 0x1009444
mov edx, 0x1005700
cmp ecx, 0x100
jb 0x100946a
ja 0x1009452
cmp eax, ebx
jb 0x100946a
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x1009462
fadd qword [0x10059b8]
fmul qword [0x10056f8]
jmp 0x10094d7
cmp eax, 0x40000000
jb 0x1009489
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x1009481
fadd qword [0x10059b8]
fmul qword [0x10056f0]
jmp 0x10094d7
cmp eax, 0x100000
jb 0x10094a8
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x10094a0
fadd qword [0x10059b8]
fmul qword [0x10056e8]
jmp 0x10094d7
cmp eax, 0x400
jb 0x10094c7
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x10094bf
fadd qword [0x10059b8]
fmul qword [0x10056e0]
jmp 0x10094d7
test eax, eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
jge 0x10094d7
fadd qword [0x10059b8]
push edx
mov edx, dword [sym.imp.msvcrt.dll__iob]
sub esp, 8
fstp qword [esp]
add edx, 0x40
push 0x1005968
push edx
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
movzx eax, cx
mov ecx, dword [sym.imp.msvcrt.dll__iob]
push eax
add ecx, 0x40
push 0x100593c
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 edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
jmp 0x1009596
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
jmp 0x1009596
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
jmp 0x1009596
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
push ebx
push 0x3e8
push edx
push eax
call fcn.01009bf0
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov edx, dword [sym.imp.msvcrt.dll__iob]
movzx ecx, si
push ecx
add edx, 0x40
push 0x100593c
push edx
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 - 0x14]
cmp esi, ebx
je 0x1009640
mov ecx, 0x1005934
mov eax, esi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1009606
cmp dx, bx
je 0x1009602
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1009606
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x10095e0
xor eax, eax
jmp 0x100960b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1009640
call dword [sym.imp.imdisk.cpl__ImDiskFindFreeDriveLetter_0]
cmp ax, bx
mov word [esi], ax
jne 0x1009640
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
push 0x1005914
call dword [sym.imp.msvcrt.dll_fputs]
add esp, 8
pop edi
pop esi
mov eax, 0xe
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x24]
cmp edi, ebx
mov esi, dword [ebp - 0x1c]
je 0x100965e
cmp esi, ebx
jne 0x1009653
jmp 0x10062f0
lea ecx, [ebp - 0x48]
push ecx
push esi
call dword [sym.imp.imdisk.cpl__ImDiskGetOffsetByFileExt_8]
cmp byte [ebp - 1], bl
je 0x10096b7
movzx esi, byte [ebp - 1]
mov ecx, dword [ebp - 0x4c]
push esi
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x48]
push eax
push ecx
push edx
call dword [sym.imp.imdisk.cpl__ImDiskGetSinglePartitionInformation_20]
test eax, eax
je 0x1009693
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov edx, eax
or edx, ecx
je 0x1009693
mov esi, dword [ebp - 0x1c]
jmp 0x10096e0
mov eax, dword [sym.imp.msvcrt.dll__iob]
push esi
add eax, 0x40
push 0x10058f0
push eax
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
cmp edi, ebx
je 0x10096f2
mov eax, dword [ebp - 0x4c]
push 1
lea ecx, [ebp - 0x80]
push ecx
lea edx, [ebp - 0x48]
push edx
push eax
push esi
call dword [sym.imp.imdisk.cpl__ImDiskGetSinglePartitionInformation_20]
test eax, eax
je 0x10096f2
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov edx, eax
or edx, ecx
je 0x10096f2
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ecx
adc dword [ebp - 0x44], edx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [ebp - 8]
push eax
push ecx
push esi
push edx
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x18]
push edx
call fcn.010068b0
cmp eax, ebx
jne 0x1008525
mov esi, dword [ebp - 0x14]
cmp esi, ebx
mov edi, dword [sym.imp.msvcrt.dll_puts]
je 0x10097c4
cmp word [esi], bx
je 0x10097c4
add esi, 2
mov ecx, 0x1005220
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100976e
cmp dx, bx
je 0x100976a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100976e
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1009748
xor eax, eax
jmp 0x1009773
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x10097af
mov ecx, 0x1004ed0
mov eax, esi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10097a6
cmp dx, bx
je 0x10097a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10097a6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x1009780
xor eax, eax
jmp 0x10097ab
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x10097c4
push 0x100547c
call edi
mov eax, dword [ebp - 0x14]
add esp, 4
push eax
push ebx
call dword [sym.imp.imdisk.cpl__ImDiskNotifyShellDriveLetter_8]
push 0x100530c
call edi
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x18]
cmp eax, 0xffffffff
jne 0x10097ee
cmp dword [ebp - 0x14], ebx
je 0x10097e9
cmp dword [ebp - 0x30], ebx
je 0x10097ee
jmp 0x10062f0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
push ecx
mov ecx, dword [ebp - 0x34]
push edx
mov edx, dword [ebp - 0x14]
push ecx
push edx
push eax
call fcn.01007220
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x18]
cmp eax, 0xffffffff
jne 0x100982f
cmp dword [ebp - 0x14], ebx
jne 0x100982f
mov eax, dword [ebp - 0x38]
push eax
call fcn.01007840
neg eax
pop edi
sbb eax, eax
pop esi
add eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x14]
push ecx
push eax
call fcn.01007990
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x18]
cmp edi, 0xffffffff
mov esi, dword [ebp - 0x14]
jne 0x1009854
cmp esi, ebx
jne 0x1009854
jmp 0x10062f0
cmp dword [ebp - 0x10], ebx
je 0x100986a
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
push edx
push eax
push esi
push edi
call fcn.01007e30
jmp 0x100986c
mov eax, ebx
mov ecx, dword [ebp - 0x5c]
cmp ecx, ebx
jl 0x1008525
jg 0x1009882
cmp dword [ebp - 0x60], ebx
jbe 0x1008525
push ecx
mov ecx, dword [ebp - 0x60]
push ecx
push esi
push edi
call fcn.010080e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret