Function at 0x4071a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x174
mov eax, dword [0x44e018]
xor eax, esp
mov dword [esp + 0x170], eax
mov eax, dword [sym.imp.MSVCR100.dll___argc]
cmp dword [eax], 2
push ebx
push esi
push edi
jge 0x4071e1
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.00438de6
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [sym.imp.MSVCR100.dll___wargv]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
xor edi, edi
xor ecx, ecx
mov word [esp + 0xd4], cx
mov ebx, 7
mov ecx, eax
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xe4], edi
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, di
jne 0x407210
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0xd8]
call fcn.00404c70
mov edx, dword [ebp + 8]
mov ecx, 0x451ef0
mov dword [0x451f84], edx
call fcn.0041eb20
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp eax, edi
je 0x407265
push str.SetDllDirectoryA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, edi
je 0x407265
push 0x44094e
call eax
mov esi, dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
xor eax, eax
xor ecx, ecx
xor edx, edx
push 8
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x1c], edi
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xcc], edi
mov word [esp + 0xbc], ax
mov dword [esp + 0x140], ebx
mov dword [esp + 0x13c], edi
mov word [esp + 0x12c], cx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x158], edi
mov word [esp + 0x148], dx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb0], edi
mov word [esp + 0xa0], ax
mov dword [esp + 0x124], ebx
mov dword [esp + 0x120], edi
mov word [esp + 0x110], cx
mov dword [esp + 0x48], edi
call esi
add esp, 4
cmp eax, edi
je 0x4085a3
xor ecx, ecx
mov dword [esp + 0x44], eax
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x44]
mov dword [eax], edx
push 8
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov byte [esp + 0x18], cl
mov byte [esp + 0x20], cl
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x178], ebx
mov dword [esp + 0x174], edi
mov word [esp + 0x164], cx
mov dword [esp + 0x60], edi
call esi
add esp, 4
cmp eax, edi
je 0x408579
mov dword [esp + 0x5c], eax
xor ecx, ecx
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x5c]
mov dword [eax], edx
mov edx, dword [sym.imp.MSVCR100.dll___argc]
or eax, 0xffffffff
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], edi
mov word [esp + 0x80], cx
mov dword [esp + 0x20], edi
mov dword [esp + 0x38], 0xfffffffe
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], eax
cmp dword [edx], 1
mov byte [esp + 0x3c], cl
mov dword [esp + 0x28], 1
jle 0x407b55
mov ebx, dword [sym.imp.MSVCR100.dll_wcsstr]
jmp 0x4073e0
mov eax, dword [sym.imp.MSVCR100.dll___wargv]
mov ecx, dword [eax]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edx*4]
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4073f3
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x84]
call fcn.00404c70
mov eax, dword [esp + 0x80]
mov esi, 8
cmp dword [esp + 0x94], esi
jae 0x40742b
lea eax, [esp + 0x80]
push str._serverPipe:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407475
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], 0xffffffff
cmp dword [esp + 0x94], esi
jae 0x407459
lea eax, [esp + 0x80]
lea ecx, [esp + 0x30]
push ecx
push str._serverPipe:_d
push eax
call dword [sym.imp.MSVCR100.dll_swscanf_s]
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x40748c
lea eax, [esp + 0x80]
push str._addr:
push eax
call ebx
add esp, 8
test eax, eax
je 0x4074fa
push 1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x88]
push ecx
xor eax, eax
mov dword [esp + 0x18], 0x3a
call fcn.00408660
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0xf4]
lea edx, [esp + 0x84]
call fcn.00408610
mov edi, eax
lea esi, [esp + 0xb8]
call fcn.0040b7c0
cmp dword [esp + 0x104], 8
jb 0x4074fa
mov edx, dword [esp + 0xf0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
jae 0x407512
lea eax, [esp + 0x80]
push str._ds:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407580
push 1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x88]
push ecx
xor eax, eax
mov dword [esp + 0x18], 0x3a
call fcn.00408660
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0xf4]
lea edx, [esp + 0x84]
call fcn.00408610
mov edi, eax
lea esi, [esp + 0x9c]
call fcn.0040b7c0
cmp dword [esp + 0x104], 8
jb 0x407580
mov edx, dword [esp + 0xf0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
jae 0x407598
lea eax, [esp + 0x80]
push str._sf2:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407606
push 1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x88]
push ecx
xor eax, eax
mov dword [esp + 0x18], 0x3a
call fcn.00408660
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0xf4]
lea edx, [esp + 0x84]
call fcn.00408610
mov edi, eax
lea esi, [esp + 0x144]
call fcn.0040b7c0
cmp dword [esp + 0x104], 8
jb 0x407606
mov edx, dword [esp + 0xf0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
jae 0x40761e
lea eax, [esp + 0x80]
push str._prof:
push eax
call ebx
add esp, 8
test eax, eax
je 0x40768c
push 1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x88]
push ecx
xor eax, eax
mov dword [esp + 0x18], 0x3a
call fcn.00408660
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0xf4]
lea edx, [esp + 0x84]
call fcn.00408610
mov edi, eax
lea esi, [esp + 0x128]
call fcn.0040b7c0
cmp dword [esp + 0x104], 8
jb 0x40768c
mov edx, dword [esp + 0xf0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
jae 0x4076a4
lea eax, [esp + 0x80]
push str._out:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407712
push 1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x88]
push ecx
xor eax, eax
mov dword [esp + 0x18], 0x3a
call fcn.00408660
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0xf4]
lea edx, [esp + 0x84]
call fcn.00408610
mov edi, eax
lea esi, [esp + 0x10c]
call fcn.0040b7c0
cmp dword [esp + 0x104], 8
jb 0x407712
mov edx, dword [esp + 0xf0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [esp + 0x80]
mov esi, 8
cmp dword [esp + 0x94], esi
jae 0x40772e
lea eax, [esp + 0x80]
push str._wnd:
push eax
call ebx
add esp, 8
test eax, eax
je 0x40776c
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x407754
lea eax, [esp + 0x80]
mov edi, dword [sym.imp.MSVCR100.dll_swscanf_s]
lea ecx, [esp + 0x18]
push ecx
push str._wnd:_x
push eax
call edi
add esp, 0xc
jmp 0x407772
mov edi, dword [sym.imp.MSVCR100.dll_swscanf_s]
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x407789
lea eax, [esp + 0x80]
push str._reset
push eax
call ebx
add esp, 8
test eax, eax
je 0x40779d
mov byte [esp + 0x14], 1
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x4077b4
lea eax, [esp + 0x80]
push str._duplex:
push eax
call ebx
add esp, 8
test eax, eax
je 0x4077ea
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x4077da
lea eax, [esp + 0x80]
lea edx, [esp + 0x2c]
push edx
push str._duplex:_d
push eax
call edi
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x407801
lea eax, [esp + 0x80]
push str._colortype:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407837
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x407827
lea eax, [esp + 0x80]
lea ecx, [esp + 0x38]
push ecx
push str._colortype:_d
push eax
call edi
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x40784e
lea eax, [esp + 0x80]
push str._unittype:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407884
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x407874
lea eax, [esp + 0x80]
lea edx, [esp + 0x40]
push edx
push str._unittype:_d
push eax
call edi
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x40789b
lea eax, [esp + 0x80]
push str._scanSettingType:
push eax
call ebx
add esp, 8
test eax, eax
je 0x4078d1
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x4078c1
lea eax, [esp + 0x80]
lea ecx, [esp + 0x34]
push ecx
push str._scanSettingType:_d
push eax
call edi
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], esi
jae 0x4078e8
lea eax, [esp + 0x80]
push str._key:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407956
push 1
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x88]
push eax
xor eax, eax
mov dword [esp + 0x18], 0x3a
call fcn.00408660
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0xf4]
lea edx, [esp + 0x84]
call fcn.00408610
mov edi, eax
lea esi, [esp + 0x160]
call fcn.0040b7c0
cmp dword [esp + 0x104], 8
jb 0x407956
mov ecx, dword [esp + 0xf0]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [esp + 0x80]
mov edi, 8
cmp dword [esp + 0x94], edi
jae 0x407972
lea eax, [esp + 0x80]
push str._keys:
push eax
call ebx
add esp, 8
test eax, eax
je 0x4079f9
push 0xffffffffffffffff
push 1
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x8c]
push eax
xor eax, eax
mov dword [esp + 0x1c], 0x3a
call fcn.00408660
lea ecx, [eax + 1]
lea esi, [esp + 0xf4]
lea edx, [esp + 0x84]
call fcn.00408610
push 1
sub esp, 0x14
mov esi, esp
mov dword [esp + 0x24], esp
push ecx
call fcn.00408720
lea ecx, [esp + 0x10c]
add esp, 4
push ecx
lea ecx, [esp + 0x78]
call fcn.00408770
add esp, 0x1c
cmp dword [esp + 0x104], edi
jb 0x4079f9
mov edx, dword [esp + 0xf0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], edi
jae 0x407a10
lea eax, [esp + 0x80]
push 0x4407c8
push eax
call ebx
add esp, 8
test eax, eax
je 0x407a24
mov byte [esp + 0x1c], 1
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], edi
jae 0x407a3b
lea eax, [esp + 0x80]
push str._capskeys:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407ac2
push 0xffffffffffffffff
push 1
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x8c]
push ecx
xor eax, eax
mov dword [esp + 0x1c], 0x3a
call fcn.00408660
lea ecx, [eax + 1]
lea esi, [esp + 0xf4]
lea edx, [esp + 0x84]
call fcn.00408610
push 1
sub esp, 0x14
mov esi, esp
mov dword [esp + 0x24], esp
push ecx
call fcn.00408720
lea edx, [esp + 0x10c]
add esp, 4
push edx
lea ecx, [esp + 0x60]
call fcn.00408770
add esp, 0x1c
cmp dword [esp + 0x104], edi
jb 0x407ac2
mov eax, dword [esp + 0xf0]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], edi
jae 0x407ad9
lea eax, [esp + 0x80]
push str._size:
push eax
call ebx
add esp, 8
test eax, eax
je 0x407b13
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], edi
jae 0x407aff
lea eax, [esp + 0x80]
lea ecx, [esp + 0x20]
push ecx
push str._size:_d
push eax
call dword [sym.imp.MSVCR100.dll_swscanf_s]
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x94], edi
jae 0x407b2a
lea eax, [esp + 0x80]
push str._raw
push eax
call ebx
add esp, 8
test eax, eax
je 0x407b3e
mov byte [esp + 0x3c], 1
mov eax, dword [esp + 0x28]
mov edx, dword [sym.imp.MSVCR100.dll___argc]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [edx]
jl 0x4073e0
mov edi, dword [esp + 0xe8]
mov esi, dword [esp + 0xd4]
mov eax, esi
cmp edi, 8
jae 0x407b71
lea eax, [esp + 0xd4]
mov ecx, 0x44081c
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407b9c
test dx, dx
je 0x407b98
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407b9c
add eax, 4
add ecx, 4
test dx, dx
jne 0x407b76
xor eax, eax
jmp 0x407ba1
sbb eax, eax
sbb eax, 0xffffffff
mov ebx, dword [esp + 0x11c]
test eax, eax
jne 0x407cc9
cmp dword [esp + 0xac], eax
je 0x407cc9
cmp dword [esp + 0xc8], eax
je 0x407cc9
test ebx, ebx
je 0x407cc9
cmp dword [esp + 0x154], eax
jne 0x407bea
cmp dword [esp + 0x138], eax
je 0x407cc9
jmp 0x407bf4
cmp dword [esp + 0x138], 0
je 0x407c23
push 0x1c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
test edi, edi
je 0x407c52
push 1
sub esp, 0x1c
lea ecx, [esp + 0x148]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00404c40
call fcn.004059d0
jmp 0x407c54
push 0x1c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
test edi, edi
je 0x407c52
push 0
sub esp, 0x1c
lea ecx, [esp + 0x164]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00404c40
call fcn.004059d0
jmp 0x407c54
xor eax, eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov esi, eax
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x34]
push ecx
push edx
push eax
lea ecx, [esp + 0xc4]
push ecx
push esi
lea edx, [esp + 0xe8]
lea ecx, [esp + 0x13c]
call fcn.00405da0
add esp, 0x30
mov dword [esp + 0x10], eax
test esi, esi
je 0x407cb4
call fcn.004085d0
mov esi, dword [esp + 0xd4]
mov ebx, dword [esp + 0x11c]
mov edi, dword [esp + 0xe8]
mov eax, esi
cmp edi, 8
jae 0x407cd7
lea eax, [esp + 0xd4]
mov ecx, 0x440824
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407d06
test dx, dx
je 0x407d02
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407d06
add eax, 4
add ecx, 4
test dx, dx
jne 0x407ce0
xor eax, eax
jmp 0x407d0b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407d56
cmp dword [esp + 0xac], eax
je 0x407d56
cmp dword [esp + 0xc8], eax
je 0x407d56
test ebx, ebx
je 0x407d56
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
push edx
push eax
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0xc4]
lea edx, [esp + 0x118]
call fcn.00405f70
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x4083ad
mov eax, esi
cmp edi, 8
jae 0x407d64
lea eax, [esp + 0xd4]
mov ecx, 0x44082c
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407d96
test dx, dx
je 0x407d92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407d96
add eax, 4
add ecx, 4
test dx, dx
jne 0x407d70
xor eax, eax
jmp 0x407d9b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407dc7
cmp dword [esp + 0xac], eax
je 0x407dc7
cmp dword [esp + 0xc8], eax
je 0x407dc7
test ebx, ebx
je 0x407dc7
cmp dword [esp + 0x154], eax
jne 0x407e11
cmp dword [esp + 0x138], eax
jne 0x407e1b
mov eax, esi
cmp edi, 8
jae 0x407dd5
lea eax, [esp + 0xd4]
mov ecx, str._getcdsdata
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407eb5
test dx, dx
je 0x407e0a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407eb5
add eax, 4
add ecx, 4
test dx, dx
jne 0x407de0
xor eax, eax
jmp 0x407eba
cmp dword [esp + 0x138], 0
je 0x407e4a
push 0x1c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
test edi, edi
je 0x407e79
push 1
sub esp, 0x1c
lea ecx, [esp + 0x148]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00404c40
call fcn.004059d0
jmp 0x407e7b
push 0x1c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
test edi, edi
je 0x407e79
push 0
sub esp, 0x1c
lea ecx, [esp + 0x164]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00404c40
call fcn.004059d0
jmp 0x407e7b
xor eax, eax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
push edx
mov esi, eax
mov eax, dword [esp + 0x20]
push eax
push ecx
lea edx, [esp + 0xc4]
push edx
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xac]
push eax
push esi
lea ecx, [esp + 0x124]
call fcn.00406110
add esp, 0x18
jmp 0x4083a0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407f83
cmp dword [esp + 0xac], eax
je 0x407f83
cmp dword [esp + 0xc8], eax
je 0x407f83
test ebx, ebx
je 0x407f83
xor esi, esi
cmp dword [esp + 0x138], esi
je 0x407f1e
push 0x1c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
test edi, edi
je 0x407f56
push 1
sub esp, 0x1c
lea ecx, [esp + 0x148]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00404c40
call fcn.004059d0
jmp 0x407f58
cmp dword [esp + 0x154], esi
je 0x407f5a
push 0x1c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
test edi, edi
je 0x407f56
push 0
sub esp, 0x1c
lea ecx, [esp + 0x164]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00404c40
call fcn.004059d0
jmp 0x407f58
xor eax, eax
mov esi, eax
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0xa0]
push edx
push esi
lea edx, [esp + 0xc4]
lea ecx, [esp + 0x118]
call fcn.00406340
add esp, 0xc
jmp 0x4083a0
mov eax, esi
cmp edi, 8
jae 0x407f91
lea eax, [esp + 0xd4]
mov ecx, str._getavvl
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407fbc
test dx, dx
je 0x407fb8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407fbc
add eax, 4
add ecx, 4
test dx, dx
jne 0x407f96
xor eax, eax
jmp 0x407fc1
sbb eax, eax
sbb eax, 0xffffffff
mov esi, dword [esp + 0x170]
test eax, eax
jne 0x40801c
cmp dword [esp + 0xac], 0
je 0x40801c
cmp dword [esp + 0xc8], 0
je 0x40801c
test ebx, ebx
je 0x40801c
test esi, esi
je 0x40801c
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x110]
push ecx
lea edx, [esp + 0xa4]
push edx
lea edx, [esp + 0x16c]
lea ecx, [esp + 0xc4]
call fcn.004067c0
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x4083ad
mov eax, dword [esp + 0xd4]
cmp edi, 8
jae 0x40802f
lea eax, [esp + 0xd4]
mov ecx, str._getval
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40805a
test dx, dx
je 0x408056
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40805a
add eax, 4
add ecx, 4
test dx, dx
jne 0x408034
xor eax, eax
jmp 0x40805f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4080b1
cmp dword [esp + 0xac], eax
je 0x4080b1
cmp dword [esp + 0xc8], eax
je 0x4080b1
test ebx, ebx
je 0x4080b1
test esi, esi
je 0x4080b1
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x110]
push ecx
lea edx, [esp + 0xa4]
push edx
lea edx, [esp + 0x16c]
lea ecx, [esp + 0xc4]
call fcn.00406990
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x4083ad
mov eax, dword [esp + 0xd4]
cmp edi, 8
jae 0x4080c4
lea eax, [esp + 0xd4]
mov ecx, str._getvals
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4080f6
test dx, dx
je 0x4080f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4080f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4080d0
xor eax, eax
jmp 0x4080fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408157
cmp dword [esp + 0xac], eax
je 0x408157
cmp dword [esp + 0xc8], eax
je 0x408157
test ebx, ebx
je 0x408157
cmp dword [esp + 0x6c], eax
jne 0x408121
cmp dword [esp + 0x54], eax
je 0x408157
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x114]
push edx
lea eax, [esp + 0xa8]
push eax
lea edx, [esp + 0x6c]
lea ecx, [esp + 0xc8]
call fcn.00406b60
add esp, 0x10
mov dword [esp + 0x10], eax
jmp 0x4083ad
mov esi, dword [esp + 0xd4]
mov eax, esi
cmp edi, 8
jae 0x40816c
lea eax, [esp + 0xd4]
mov ecx, 0x440884
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408197
test dx, dx
je 0x408193
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408197
add eax, 4
add ecx, 4
test dx, dx
jne 0x408171
xor eax, eax
jmp 0x40819c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4081bd
test ebx, ebx
je 0x4081bd
lea ecx, [esp + 0x10c]
push ecx
call fcn.00406d40
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x4083ad
mov eax, esi
cmp edi, 8
jae 0x4081cb
lea eax, [esp + 0xd4]
mov ecx, str._getConnectInfo
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4081f6
test dx, dx
je 0x4081f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4081f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4081d0
xor eax, eax
jmp 0x4081fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408224
test ebx, ebx
je 0x408224
lea edx, [esp + 0x10c]
push edx
lea eax, [esp + 0xa0]
push eax
call fcn.00406e30
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x4083ad
mov eax, esi
cmp edi, 8
jae 0x408232
lea eax, [esp + 0xd4]
mov ecx, str._utility
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40825d
test dx, dx
je 0x408259
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40825d
add eax, 4
add ecx, 4
test dx, dx
jne 0x408237
xor eax, eax
jmp 0x408262
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4082ae
cmp dword [esp + 0xac], eax
je 0x4082ae
cmp dword [esp + 0xc8], eax
je 0x4082ae
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
push edx
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0xc8]
call fcn.004065a0
add esp, 0x10
mov dword [esp + 0x10], eax
jmp 0x4083ad
mov eax, esi
cmp edi, 8
jae 0x4082bc
lea eax, [esp + 0xd4]
mov ecx, str._erasepreview
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4082e7
test dx, dx
je 0x4082e3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4082e7
add eax, 4
add ecx, 4
test dx, dx
jne 0x4082c1
xor eax, eax
jmp 0x4082ec
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4083ad
cmp dword [esp + 0xac], eax
je 0x4083ad
cmp dword [esp + 0xc8], eax
je 0x4083ad
xor esi, esi
cmp dword [esp + 0x138], esi
je 0x408348
push 0x1c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
test edi, edi
je 0x408380
push 1
sub esp, 0x1c
lea ecx, [esp + 0x148]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00404c40
call fcn.004059d0
jmp 0x408382
cmp dword [esp + 0x154], esi
je 0x408384
push 0x1c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov edi, eax
add esp, 4
test edi, edi
je 0x408380
push 0
sub esp, 0x1c
lea ecx, [esp + 0x164]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00404c40
call fcn.004059d0
jmp 0x408382
xor eax, eax
mov esi, eax
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0xc0]
call fcn.00406f50
add esp, 8
mov dword [esp + 0x10], eax
test esi, esi
je 0x4083ad
call fcn.004085d0
cmp dword [esp + 0x94], 8
mov ebx, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
jb 0x4083ca
mov ecx, dword [esp + 0x80]
push ecx
call ebx
add esp, 4
xor edx, edx
xor edi, edi
lea esi, [esp + 0x5c]
mov dword [esp + 0x94], 7
mov dword [esp + 0x90], edi
mov word [esp + 0x80], dx
call fcn.0040b700
mov eax, dword [esp + 0x5c]
push eax
call ebx
add esp, 4
cmp dword [esp + 0x174], 8
mov dword [esp + 0x5c], edi
jb 0x408416
mov ecx, dword [esp + 0x160]
push ecx
call ebx
add esp, 4
xor edx, edx
lea esi, [esp + 0x44]
mov dword [esp + 0x174], 7
mov dword [esp + 0x170], edi
mov word [esp + 0x160], dx
call fcn.0040b700
mov eax, dword [esp + 0x44]
push eax
call ebx
mov esi, 8
add esp, 4
mov dword [esp + 0x44], edi
cmp dword [esp + 0x120], esi
jb 0x408464
mov ecx, dword [esp + 0x10c]
push ecx
call ebx
add esp, 4
xor edx, edx
mov dword [esp + 0x120], 7
mov dword [esp + 0x11c], edi
mov word [esp + 0x10c], dx
cmp dword [esp + 0xb0], esi
jb 0x408496
mov eax, dword [esp + 0x9c]
push eax
call ebx
add esp, 4
xor ecx, ecx
mov dword [esp + 0xb0], 7
mov dword [esp + 0xac], edi
mov word [esp + 0x9c], cx
cmp dword [esp + 0x158], esi
jb 0x4084c8
mov edx, dword [esp + 0x144]
push edx
call ebx
add esp, 4
xor eax, eax
mov dword [esp + 0x158], 7
mov dword [esp + 0x154], edi
mov word [esp + 0x144], ax
cmp dword [esp + 0x13c], esi
jb 0x4084fa
mov ecx, dword [esp + 0x128]
push ecx
call ebx
add esp, 4
xor edx, edx
mov dword [esp + 0x13c], 7
mov dword [esp + 0x138], edi
mov word [esp + 0x128], dx
cmp dword [esp + 0xcc], esi
jb 0x40852c
mov eax, dword [esp + 0xb8]
push eax
call ebx
add esp, 4
xor ecx, ecx
mov dword [esp + 0xcc], 7
mov dword [esp + 0xc8], edi
mov word [esp + 0xb8], cx
cmp dword [esp + 0xe8], esi
jb 0x40855e
mov edx, dword [esp + 0xd4]
push edx
call ebx
add esp, 4
mov ecx, dword [esp + 0x17c]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00438de6
mov esp, ebp
pop ebp
ret 0x10
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x78]
mov dword [esp + 0x10], edi
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x445dfc
lea ecx, [esp + 0x78]
push ecx
mov dword [esp + 0x7c], vtable.std::bad_alloc.0
call sub.MSVCR100.dll__CxxThrowException
lea edx, [esp + 0xc]
push edx
lea ecx, [esp + 0x78]
mov dword [esp + 0x10], edi
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x445dfc
lea eax, [esp + 0x78]
push eax
mov dword [esp + 0x7c], vtable.std::bad_alloc.0
call sub.MSVCR100.dll__CxxThrowException
int3