Function at 0x40d4d0
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 0x40daee
xor esi, esi
cmp eax, ebx
jbe 0x40d566
cmp esi, eax
jbe 0x40d52c
call fcn.004196a6
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x78], edi
mov ecx, dword [esp + 0x64]
jae 0x40d53a
lea ecx, [esp + 0x64]
cmp byte [ecx + esi], 0x3d
jne 0x40d55f
cmp esi, eax
jbe 0x40d549
call fcn.004196a6
cmp dword [esp + 0x78], edi
mov eax, dword [esp + 0x64]
jae 0x40d557
lea eax, [esp + 0x64]
mov byte [eax + esi], 0x7c
mov eax, dword [esp + 0x74]
add esi, 1
cmp esi, eax
jb 0x40d52c
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 0x40d591
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 0x40d5e6
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 0x40d64f
lea esp, [esp]
mov ecx, esi
and ecx, 1
cmp ecx, ebp
jne 0x40d648
cmp esi, edi
jbe 0x40d622
call fcn.004196a6
cmp dword [esp + 0x5c], 0x10
mov eax, dword [esp + 0x48]
jae 0x40d631
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 0x40d610
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 0x40d72d
push 1
push edi
lea ecx, [esp + 0x30]
call fcn.004019a2
test al, al
je 0x40d726
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebx
jae 0x40d724
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 0x40d749
lea ecx, [esp + 0xd4]
lea esi, [ecx + edi]
cmp esi, ebx
je 0x40d776
cmp edx, 0x10
mov ecx, eax
jae 0x40d75e
lea ecx, [esp + 0xd4]
cmp ecx, esi
ja 0x40d776
cmp edx, 0x10
mov ecx, eax
jae 0x40d770
lea ecx, [esp + 0xd4]
add ecx, edi
cmp esi, ecx
jbe 0x40d789
call fcn.004196a6
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0xd0]
mov ebp, ecx
mov ebx, esi
cmp edx, 0x10
jb 0x40d811
xor edi, edi
cmp eax, edi
mov esi, eax
je 0x40d7cc
cmp edx, 0x10
mov ecx, eax
jae 0x40d7af
lea ecx, [esp + 0xd4]
cmp ecx, esi
ja 0x40d7cc
cmp edx, 0x10
jae 0x40d7bf
lea eax, [esp + 0xd4]
mov ecx, dword [esp + 0xe4]
add eax, ecx
cmp esi, eax
jbe 0x40d7d1
call fcn.004196a6
cmp ebp, 0xfffffffe
je 0x40d7ea
cmp ebp, edi
je 0x40d7e5
lea edx, [esp + 0xd0]
cmp ebp, edx
je 0x40d7ea
call fcn.004196a6
cmp ebx, esi
je 0x40d8f2
cmp ebp, 0xfffffffe
mov esi, ebp
mov dword [esp + 0x24], ebx
je 0x40d828
cmp ebp, edi
jne 0x40d806
call fcn.004196a6
cmp dword [ebp + 0x18], 0x10
jb 0x40d81c
mov eax, dword [ebp + 4]
jmp 0x40d81f
lea esi, [esp + 0xd4]
xor edi, edi
jmp 0x40d7a1
lea eax, [ebp + 4]
cmp ebx, eax
ja 0x40d828
call fcn.004196a6
cmp esi, 0xfffffffe
lea edi, [ebx - 1]
je 0x40d855
test esi, esi
jne 0x40d839
call fcn.004196a6
cmp dword [esi + 0x18], 0x10
jb 0x40d844
mov eax, dword [esi + 4]
jmp 0x40d847
lea eax, [esi + 4]
mov ecx, dword [esi + 0x14]
add ecx, eax
cmp edi, ecx
jb 0x40d855
call fcn.004196a6
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 0x40d86e
lea eax, [esp + 0x2c]
mov esi, dword [esp + 0x3c]
add esi, eax
je 0x40d89a
cmp edx, 0x10
mov eax, ecx
jae 0x40d881
lea eax, [esp + 0x2c]
cmp eax, esi
ja 0x40d89a
cmp edx, 0x10
mov eax, ecx
jae 0x40d890
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
add eax, ecx
cmp esi, eax
jbe 0x40d89f
call fcn.004196a6
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.0040b690
cmp ebp, 0xfffffffe
je 0x40d8dd
test ebp, ebp
jne 0x40d8c6
call fcn.004196a6
cmp dword [ebp + 0x18], 0x10
jb 0x40d8d1
mov eax, dword [ebp + 4]
jmp 0x40d8d4
lea eax, [ebp + 4]
cmp ebx, eax
ja 0x40d8dd
call fcn.004196a6
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xd4]
mov ebx, edi
jmp 0x40d794
mov eax, dword [esp + 0x3c]
cmp eax, 5
jbe 0x40d980
jae 0x40d906
call fcn.004196a6
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x2c]
jae 0x40d915
lea eax, [esp + 0x2c]
mov bl, byte [eax + 5]
mov eax, dword [esp + 0x3c]
lea esi, [eax - 5]
cmp esi, eax
jbe 0x40d92c
call fcn.004196a6
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov ebp, 0x10
cmp dword [esp + 0x40], ebp
jae 0x40d93f
lea edi, [esp + 0x2c]
cmp eax, 5
jae 0x40d949
call fcn.004196a6
cmp dword [esp + 0x40], ebp
mov eax, dword [esp + 0x2c]
jae 0x40d957
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 0x40d96d
call fcn.004196a6
cmp dword [esp + 0x40], ebp
mov eax, dword [esp + 0x2c]
jae 0x40d97b
lea eax, [esp + 0x2c]
mov byte [eax + esi], bl
xor edi, edi
cmp dword [esp + 0x3c], edi
je 0x40d9e7
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x2c]
mov ecx, eax
jae 0x40d997
lea ecx, [esp + 0x2c]
mov bl, byte [ecx]
mov ecx, dword [esp + 0x3c]
lea esi, [ecx - 1]
cmp esi, ecx
jbe 0x40d9ad
call fcn.004196a6
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
cmp edx, 0x10
mov ecx, eax
jae 0x40d9be
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 0x40d9d3
call fcn.004196a6
cmp dword [esp + 0x40], 0x10
mov eax, dword [esp + 0x2c]
jae 0x40d9e2
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 0x40da21
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.004192f0
add esp, 4
cmp dword [esp + 0x94], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2c], 0
jb 0x40da47
mov edx, dword [esp + 0x80]
push edx
call fcn.004192f0
add esp, 4
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], edi
mov byte [esp + 0x80], 0
jb 0x40da70
mov eax, dword [esp + 0x48]
push eax
call fcn.004192f0
add esp, 4
cmp dword [esp + 0xb0], 8
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
jb 0x40da97
mov ecx, dword [esp + 0x9c]
push ecx
call fcn.004192f0
add esp, 4
cmp dword [esp + 0x78], ebp
mov dword [esp + 0xb0], 7
mov dword [esp + 0xac], edi
mov word [esp + 0x9c], di
jb 0x40dac4
mov edx, dword [esp + 0x64]
push edx
call fcn.004192f0
add esp, 4
cmp dword [esp + 0xe8], ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], edi
mov byte [esp + 0x64], 0
jb 0x40daea
mov eax, dword [esp + 0xd4]
push eax
call fcn.004192f0
add esp, 4
mov eax, esi
jmp 0x40db36
mov esi, 0xf
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x14], ebx
mov byte [ebp + 4], bl
cmp dword [esp + 0x78], edi
jb 0x40db0f
mov ecx, dword [esp + 0x64]
push ecx
call fcn.004192f0
add esp, 4
cmp dword [esp + 0xe8], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
jb 0x40db34
mov edx, dword [esp + 0xd4]
push edx
call fcn.004192f0
add esp, 4
mov eax, ebp
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00419b4f
add esp, 0xb8
ret 0x28