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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
mov eax, dword [0x40a004]
xor eax, esp
mov dword [esp + 0xf8], eax
push ebx
push esi
push edi
mov dword [esp + 0x24], ecx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x28]
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x9c], eax
xor eax, eax
push 0x3c
push eax
mov dword [esp + 0x54], eax
lea eax, [esp + 0x68]
mov ecx, dword [ebp + 0xc]
push eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x4c], ebx
call sub.msvcrt.dll_memset
xor eax, eax
lea edi, [esp + 0x5c]
stosd dword es:[edi], eax
add esp, 0xc
cmp dword [esp + 0x24], 0
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jne 0x40844c
mov ebx, 0x80070057
jmp 0x408ab9
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40845f
lea edx, [esp + 0x38]
mov ecx, eax
call fcn.004080c4
lea ecx, [esp + 0x38]
call fcn.00406ee0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40847b
lea edx, [esp + 0x3c]
mov ecx, eax
call fcn.004080c4
lea ecx, [esp + 0x3c]
call fcn.00406ee0
test esi, esi
je 0x408493
lea edx, [esp + 0x30]
mov ecx, esi
call fcn.004080c4
lea ecx, [esp + 0x30]
call fcn.00406ee0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4084af
lea edx, [esp + 0x44]
mov ecx, eax
call fcn.004080c4
lea ecx, [esp + 0x44]
call fcn.00406ee0
test ebx, ebx
je 0x4084c7
lea edx, [esp + 0x40]
mov ecx, ebx
call fcn.004080c4
lea ecx, [esp + 0x40]
call fcn.00406ee0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4084e3
lea edx, [esp + 0x34]
mov ecx, eax
call fcn.004080c4
lea ecx, [esp + 0x34]
call fcn.00406ee0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
test eax, eax
je 0x4084ff
mov ecx, eax
call fcn.0040823a
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x408512
mov ecx, eax
call fcn.0040823a
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x408523
call fcn.0040823a
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x408536
mov ecx, eax
call fcn.0040823a
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
test eax, eax
je 0x408549
mov ecx, eax
call fcn.0040823a
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
test eax, eax
je 0x40855c
mov ecx, eax
call fcn.0040823a
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x40857e
lea edx, [esp + 0x48]
mov ecx, ebx
call fcn.004080c4
mov ebx, dword [esp + 0x48]
mov ecx, ebx
mov dword [esp + 0x18], ebx
call fcn.0040823a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4085a6
lea edx, [esp + 0x9c]
mov ecx, eax
call fcn.004080c4
mov eax, dword [esp + 0x9c]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.0040823a
mov esi, 0x406adc
lea edi, [esp + 0xa4]
xor ebx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x30]
cmp dword [esp + 0x28], ebx
je 0x408606
cmp dword [esp + 0x2c], ebx
je 0x408606
test esi, esi
je 0x4089cb
mov eax, dword [esp + 0x10]
test eax, eax
je 0x408912
movzx eax, byte [ebp + 0x14]
push eax
movzx eax, byte [ebp + 0x10]
push eax
push 0x406ae8
lea eax, [esp + 0xb0]
push 0xc
push eax
call fcn.00408329
add esp, 0x14
test eax, eax
je 0x408833
mov ebx, eax
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
test esi, esi
je 0x4089cb
test eax, eax
je 0x4086f4
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4086c3
cmp dword [esp + 0x18], 0
je 0x40868c
mov edx, dword [esp + 0x20]
test edx, edx
je 0x40868c
mov dword [esp + 0x9c], edi
test edi, edi
jne 0x40864f
mov dword [esp + 0x9c], 0x406b00
push edx
mov edx, 0x406afc
push edx
push dword [esp + 0x20]
push edx
push ecx
push edx
push eax
push edx
push dword [esp + 0xbc]
lea eax, [esp + 0x90]
push edx
push esi
push 0xb
push eax
call fcn.00408145
mov ecx, dword [esp + 0x48]
add esp, 0x34
test eax, eax
je 0x408688
test ebx, ebx
js 0x408688
mov ebx, eax
mov eax, dword [esp + 0x10]
mov edx, edi
test edi, edi
jne 0x408697
mov edx, 0x406b00
push ecx
mov ecx, 0x406afc
push ecx
push eax
push ecx
push edx
push ecx
push esi
lea eax, [esp + 0x8c]
push 7
push eax
call fcn.00408145
add esp, 0x24
test eax, eax
je 0x4086bf
test ebx, ebx
js 0x4086bf
mov ebx, eax
mov eax, dword [esp + 0x10]
mov ecx, edi
test edi, edi
jne 0x4086ce
mov ecx, 0x406b00
push eax
mov eax, 0x406afc
push eax
push ecx
push eax
push esi
lea eax, [esp + 0x88]
push 5
push eax
call fcn.00408145
add esp, 0x1c
test eax, eax
je 0x4086f4
test ebx, ebx
js 0x4086f4
mov ebx, eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40875b
mov edx, dword [esp + 0x18]
test edx, edx
je 0x408738
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x408738
push ecx
mov ecx, 0x406afc
push ecx
push edx
push ecx
push eax
push ecx
push esi
lea eax, [esp + 0x94]
push 7
push eax
call fcn.00408145
add esp, 0x24
test eax, eax
je 0x408734
test ebx, ebx
js 0x408734
mov ebx, eax
mov eax, dword [esp + 0x14]
push eax
push 0x406afc
push esi
lea eax, [esp + 0x88]
push 3
push eax
call fcn.00408145
add esp, 0x14
test eax, eax
je 0x40875b
test ebx, ebx
js 0x40875b
mov ebx, eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4087c2
mov edx, dword [esp + 0x18]
test edx, edx
je 0x40879f
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x40879f
push ecx
mov ecx, 0x406afc
push ecx
push edx
push ecx
push eax
push ecx
push esi
lea eax, [esp + 0x9c]
push 7
push eax
call fcn.00408145
add esp, 0x24
test eax, eax
je 0x40879b
test ebx, ebx
js 0x40879b
mov ebx, eax
mov eax, dword [esp + 0x10]
push eax
push 0x406afc
push esi
lea eax, [esp + 0x90]
push 3
push eax
call fcn.00408145
add esp, 0x14
test eax, eax
je 0x4087c2
test ebx, ebx
js 0x4087c2
mov ebx, eax
test edi, edi
je 0x40891b
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x408802
mov eax, dword [esp + 0x20]
test eax, eax
je 0x408802
push eax
mov eax, 0x406afc
push eax
push ecx
push eax
push edi
push eax
push esi
lea eax, [esp + 0xa4]
push 7
push eax
call fcn.00408145
add esp, 0x24
test eax, eax
je 0x408802
test ebx, ebx
js 0x408802
mov ebx, eax
push edi
mov edi, 0x406afc
lea eax, [esp + 0x90]
push edi
push esi
push 3
push eax
call fcn.00408145
add esp, 0x14
test eax, eax
je 0x408920
test ebx, ebx
js 0x408920
mov ebx, eax
jmp 0x408920
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
test eax, eax
je 0x408884
mov ecx, edi
test edi, edi
jne 0x40884a
mov ecx, 0x406b00
lea edx, [esp + 0xa4]
push edx
mov edx, 0x406afc
push edx
push dword [esp + 0x34]
push edx
push dword [esp + 0x38]
push edx
push eax
push edx
push dword [esp + 0x30]
lea eax, [esp + 0x84]
push edx
push ecx
push edx
push esi
push 0xd
push eax
call fcn.00408145
add esp, 0x3c
test eax, eax
je 0x408884
mov ebx, eax
mov eax, edi
test edi, edi
jne 0x40888f
mov eax, 0x406b00
lea ecx, [esp + 0xa4]
push ecx
mov ecx, 0x406afc
push ecx
push dword [esp + 0x34]
push ecx
push dword [esp + 0x38]
push ecx
push dword [esp + 0x28]
push ecx
push eax
push ecx
push esi
lea eax, [esp + 0x90]
push 0xb
push eax
call fcn.00408145
add esp, 0x34
test eax, eax
je 0x4088cb
test ebx, ebx
js 0x4088cb
mov ebx, eax
lea eax, [esp + 0xa4]
push eax
mov eax, 0x406afc
push eax
push dword [esp + 0x34]
push eax
push dword [esp + 0x38]
push eax
push dword [esp + 0x28]
push eax
push esi
lea eax, [esp + 0x8c]
push 9
push eax
call fcn.00408145
add esp, 0x2c
test eax, eax
je 0x40860a
test ebx, ebx
js 0x40860a
mov ebx, eax
jmp 0x40860a
mov edi, dword [esp + 0x1c]
jmp 0x40860e
mov edi, 0x406afc
mov al, byte [ebp + 0x30]
test al, al
je 0x40897d
movzx eax, al
xor ecx, ecx
push eax
push 0x406b04
lea eax, [esp + 0xa4]
mov dword [esp + 0xa4], ecx
push 6
push eax
mov word [esp + 0xb0], cx
call fcn.00408329
add esp, 0x10
test eax, eax
jne 0x408977
lea eax, [esp + 0x9c]
push eax
push edi
push esi
lea eax, [esp + 0x9c]
push 3
push eax
call fcn.00408145
add esp, 0x14
test eax, eax
je 0x40897d
test ebx, ebx
js 0x40897d
mov ebx, eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4089ae
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4089ae
push eax
push edi
push ecx
push edi
push esi
lea eax, [esp + 0xa8]
push 5
push eax
call fcn.00408145
add esp, 0x1c
test eax, eax
je 0x4089ae
test ebx, ebx
js 0x4089ae
mov ebx, eax
push esi
lea eax, [esp + 0x9c]
push 1
push eax
call fcn.00408145
add esp, 0xc
test eax, eax
je 0x4089cb
test ebx, ebx
js 0x4089cb
mov ebx, eax
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x60]
xor edi, edi
sub eax, ecx
mov dword [esp + 0x34], eax
and dword [ecx], 0
cmp edi, 0xf
jae 0x408aa8
mov edx, dword [eax + ecx]
test edx, edx
je 0x408aa8
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esp + 0x9c], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x4c]
jne 0x4089fe
sub ecx, dword [esp + 0x9c]
sar ecx, 1
cmp ecx, 0x7fffffff
jae 0x408a2c
lea eax, [esp + 0x50]
push eax
lea eax, [ecx + ecx]
push eax
call fcn.00408b66
jmp 0x408a31
mov eax, 0x80070057
test eax, eax
js 0x408aa0
movzx eax, byte [esp + 0x5f]
push eax
movzx eax, byte [esp + 0x62]
push eax
movzx eax, byte [esp + 0x65]
push eax
movzx eax, byte [esp + 0x68]
push eax
movzx eax, byte [esp + 0x6b]
push eax
movzx eax, byte [esp + 0x6e]
push eax
movzx eax, byte [esp + 0x71]
push eax
movzx eax, byte [esp + 0x74]
push eax
movzx eax, word [esp + 0x76]
push eax
movzx eax, word [esp + 0x78]
push eax
push dword [esp + 0x78]
lea eax, [esp + 0xdc]
push 0x406b10
push 0x28
push eax
call fcn.004082e5
add esp, 0x38
test eax, eax
js 0x408aa0
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0xb0]
call fcn.004080c4
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
inc edi
add ecx, 4
mov dword [esp + 0x24], ecx
cmp edi, 0xf
jb 0x4089db
mov eax, dword [esp + 0x28]
test eax, eax
je 0x408ac9
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x408ad9
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
je 0x408ae5
push esi
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x408af5
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x408b05
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x408b15
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, dword [esp + 0x18]
test eax, eax
je 0x408b25
push eax
call dword [sym.imp.msvcrt.dll_free]
adc eax, sym.imp.msvcrt.dll_free
pop ecx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x408b35
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
xor esi, esi
mov eax, dword [esp + esi*4 + 0x60]
test eax, eax
je 0x408b47
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
inc esi
cmp esi, 0xf
jb 0x408b37
mov ecx, dword [esp + 0x104]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00409050
mov esp, ebp
pop ebp
ret 0x2c