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

Disassembly:
sub esp, 0xb8
mov eax, dword [0x43d504]
xor eax, esp
mov dword [esp + 0xb4], eax
push ebx
push ebp
mov ebp, dword [esp + 0xc4]
push esi
push edi
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x1c], ebp
call fcn.004032f7
mov eax, dword [esp + 0x7c]
xor ebx, ebx
add esp, 8
cmp eax, ebx
lea edi, [ebx + 0x10]
je 0x40de3e
xor esi, esi
cmp eax, ebx
jbe 0x40d8b6
cmp esi, eax
jbe 0x40d87c
call fcn.00419ec9
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x78], edi
mov ecx, dword [esp + 0x64]
jae 0x40d88a
lea ecx, [esp + 0x64]
cmp byte [ecx + esi], 0x3d
jne 0x40d8af
cmp esi, eax
jbe 0x40d899
call fcn.00419ec9
cmp dword [esp + 0x78], edi
mov eax, dword [esp + 0x64]
jae 0x40d8a7
lea eax, [esp + 0x64]
mov byte [eax + esi], 0x7c
mov eax, dword [esp + 0x74]
add esi, 1
cmp esi, eax
jb 0x40d87c
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0xdc]
call fcn.00401550
cmp dword [esp + 0xe8], edi
mov eax, dword [esp + 0xd4]
jae 0x40d8e1
lea eax, [esp + 0xd4]
mov edx, dword [esp + 0xe4]
lea ecx, [esp + 0xb4]
push ecx
push edx
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.004032ce
lea ecx, [esp + 0xa8]
push ecx
call fcn.0040230e
push ebx
lea edx, [esp + 0xb0]
push edx
lea eax, [esp + 0x60]
push eax
call fcn.004013ba
mov ebp, dword [esp + 0x104]
add esp, 0x20
and ebp, 0x80000001
jns 0x40d936
dec ebp
or ebp, 0xfffffffe
inc ebp
mov edi, dword [esp + 0x58]
xor esi, esi
cmp edi, ebx
mov dword [esp + 0x94], 0xf
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
jbe 0x40d99f
lea esp, [esp]
mov ecx, esi
and ecx, 1
cmp ecx, ebp
jne 0x40d998
cmp esi, edi
jbe 0x40d972
call fcn.00419ec9
cmp dword [esp + 0x5c], 0x10
mov eax, dword [esp + 0x48]
jae 0x40d981
lea eax, [esp + 0x48]
movzx edx, byte [eax + esi]
push edx
push 1
lea ecx, [esp + 0x84]
call fcn.00404888
mov edi, dword [esp + 0x58]
add esi, 1
cmp esi, edi
jb 0x40d960
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x88]
mov eax, edi
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x94]
push 0xffffffffffffffff
mov dword [esp + 0x98], eax
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x90]
push ebx
lea eax, [esp + 0x4c]
mov dword [esp + 0x60], ecx
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0x68], edx
call fcn.004059c0
mov edi, dword [esp + 0xe4]
cmp edi, 0xf
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2c], bl
je 0x40da7d
push 1
push edi
lea ecx, [esp + 0x30]
call fcn.004019a2
test al, al
je 0x40da76
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebx
jae 0x40da74
lea eax, [esp + 0x2c]
mov byte [eax], bl
mov edi, dword [esp + 0xe4]
mov edx, dword [esp + 0xe8]
cmp edx, 0x10
mov eax, dword [esp + 0xd4]
mov ecx, eax
jae 0x40da99
lea ecx, [esp + 0xd4]
lea esi, [ecx + edi]
cmp esi, ebx
je 0x40dac6
cmp edx, 0x10
mov ecx, eax
jae 0x40daae
lea ecx, [esp + 0xd4]
cmp ecx, esi
ja 0x40dac6
cmp edx, 0x10
mov ecx, eax
jae 0x40dac0
lea ecx, [esp + 0xd4]
add ecx, edi
cmp esi, ecx
jbe 0x40dad9
call fcn.00419ec9
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0xd0]
mov ebp, ecx
mov ebx, esi
cmp edx, 0x10
jb 0x40db61
xor edi, edi
cmp eax, edi
mov esi, eax
je 0x40db1c
cmp edx, 0x10
mov ecx, eax
jae 0x40daff
lea ecx, [esp + 0xd4]
cmp ecx, esi
ja 0x40db1c
cmp edx, 0x10
jae 0x40db0f
lea eax, [esp + 0xd4]
mov ecx, dword [esp + 0xe4]
add eax, ecx
cmp esi, eax
jbe 0x40db21
call fcn.00419ec9
cmp ebp, 0xfffffffe
je 0x40db3a
cmp ebp, edi
je 0x40db35
lea edx, [esp + 0xd0]
cmp ebp, edx
je 0x40db3a
call fcn.00419ec9
cmp ebx, esi
je 0x40dc42
cmp ebp, 0xfffffffe
mov esi, ebp
mov dword [esp + 0x24], ebx
je 0x40db78
cmp ebp, edi
jne 0x40db56
call fcn.00419ec9
cmp dword [ebp + 0x18], 0x10
jb 0x40db6c
mov eax, dword [ebp + 4]
jmp 0x40db6f
lea esi, [esp + 0xd4]
xor edi, edi
jmp 0x40daf1
lea eax, [ebp + 4]
cmp ebx, eax
ja 0x40db78
call fcn.00419ec9
cmp esi, 0xfffffffe
lea edi, [ebx - 1]
je 0x40dba5
test esi, esi
jne 0x40db89
call fcn.00419ec9
cmp dword [esi + 0x18], 0x10
jb 0x40db94
mov eax, dword [esi + 4]
jmp 0x40db97
lea eax, [esi + 4]
mov ecx, dword [esi + 0x14]
add ecx, eax
cmp edi, ecx
jb 0x40dba5
call fcn.00419ec9
mov dl, byte [edi]
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x10], dl
mov edx, dword [esp + 0x40]
cmp edx, 0x10
mov eax, ecx
jae 0x40dbbe
lea eax, [esp + 0x2c]
mov esi, dword [esp + 0x3c]
add esi, eax
je 0x40dbea
cmp edx, 0x10
mov eax, ecx
jae 0x40dbd1
lea eax, [esp + 0x2c]
cmp eax, esi
ja 0x40dbea
cmp edx, 0x10
mov eax, ecx
jae 0x40dbe0
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
add eax, ecx
cmp esi, eax
jbe 0x40dbef
call fcn.00419ec9
mov edx, dword [esp + 0x10]
push edx
push esi
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x38]
call fcn.0040b970
cmp ebp, 0xfffffffe
je 0x40dc2d
test ebp, ebp
jne 0x40dc16
call fcn.00419ec9
cmp dword [ebp + 0x18], 0x10
jb 0x40dc21
mov eax, dword [ebp + 4]
jmp 0x40dc24
lea eax, [ebp + 4]
cmp ebx, eax
ja 0x40dc2d
call fcn.00419ec9
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xd4]
mov ebx, edi
jmp 0x40dae4
mov eax, dword [esp + 0x3c]
cmp eax, 5
jbe 0x40dcd0
jae 0x40dc56
call fcn.00419ec9
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x2c]
jae 0x40dc65
lea eax, [esp + 0x2c]
mov bl, byte [eax + 5]
mov eax, dword [esp + 0x3c]
lea esi, [eax - 5]
cmp esi, eax
jbe 0x40dc7c
call fcn.00419ec9
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov ebp, 0x10
cmp dword [esp + 0x40], ebp
jae 0x40dc8f
lea edi, [esp + 0x2c]
cmp eax, 5
jae 0x40dc99
call fcn.00419ec9
cmp dword [esp + 0x40], ebp
mov eax, dword [esp + 0x2c]
jae 0x40dca7
lea eax, [esp + 0x2c]
mov cl, byte [edi + esi]
mov byte [eax + 5], cl
mov eax, dword [esp + 0x3c]
lea esi, [eax - 5]
cmp esi, eax
jbe 0x40dcbd
call fcn.00419ec9
cmp dword [esp + 0x40], ebp
mov eax, dword [esp + 0x2c]
jae 0x40dccb
lea eax, [esp + 0x2c]
mov byte [eax + esi], bl
xor edi, edi
cmp dword [esp + 0x3c], edi
je 0x40dd37
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x2c]
mov ecx, eax
jae 0x40dce7
lea ecx, [esp + 0x2c]
mov bl, byte [ecx]
mov ecx, dword [esp + 0x3c]
lea esi, [ecx - 1]
cmp esi, ecx
jbe 0x40dcfd
call fcn.00419ec9
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
cmp edx, 0x10
mov ecx, eax
jae 0x40dd0e
lea ecx, [esp + 0x2c]
mov eax, ecx
mov dl, byte [ecx + esi]
mov byte [eax], dl
mov eax, dword [esp + 0x3c]
lea esi, [eax - 1]
cmp esi, eax
jbe 0x40dd23
call fcn.00419ec9
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x2c]
jae 0x40dd32
lea eax, [esp + 0x2c]
mov byte [eax + esi], bl
xor edi, edi
mov esi, dword [esp + 0x14]
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x30]
mov ebx, 0xf
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], edi
push eax
mov ecx, esi
mov byte [esi + 4], 0
call fcn.00401550
mov ebp, 0x10
cmp dword [esp + 0x40], ebp
jb 0x40dd71
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00419b13
add esp, 4
cmp dword [esp + 0x94], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2c], 0
jb 0x40dd97
mov edx, dword [esp + 0x80]
push edx
call fcn.00419b13
add esp, 4
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], edi
mov byte [esp + 0x80], 0
jb 0x40ddc0
mov eax, dword [esp + 0x48]
push eax
call fcn.00419b13
add esp, 4
cmp dword [esp + 0xb0], 8
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
jb 0x40dde7
mov ecx, dword [esp + 0x9c]
push ecx
call fcn.00419b13
add esp, 4
cmp dword [esp + 0x78], ebp
mov dword [esp + 0xb0], 7
mov dword [esp + 0xac], edi
mov word [esp + 0x9c], di
jb 0x40de14
mov edx, dword [esp + 0x64]
push edx
call fcn.00419b13
add esp, 4
cmp dword [esp + 0xe8], ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], edi
mov byte [esp + 0x64], 0
jb 0x40de3a
mov eax, dword [esp + 0xd4]
push eax
call fcn.00419b13
add esp, 4
mov eax, esi
jmp 0x40de86
mov esi, 0xf
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x14], ebx
mov byte [ebp + 4], bl
cmp dword [esp + 0x78], edi
jb 0x40de5f
mov ecx, dword [esp + 0x64]
push ecx
call fcn.00419b13
add esp, 4
cmp dword [esp + 0xe8], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
jb 0x40de84
mov edx, dword [esp + 0xd4]
push edx
call fcn.00419b13
add esp, 4
mov eax, ebp
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041a372
add esp, 0xb8
ret 0x28