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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x58
mov edi, ecx
mov dword [esp + 0x54], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x94]
test edx, edx
mov esi, 1
jle 0x431539
mov esi, edx
lea ebp, [ebp + 1]
lea edx, [ecx + 1]
mov dword [esp + 0x40], edx
lea eax, [eax + eax]
add eax, eax
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x88]
imul edx, eax
push edx
call fcn.0046769c
pop ecx
cmp dword [esp + 0x98], 0
jne 0x4318e5
cmp ebx, ebp
jge 0x431cdc
lea edx, [edi + 1]
mov dword [esp + 0x18], edx
lea edx, [edi + esi]
mov dword [esp + 0x14], edx
lea edx, [edi + esi + 1]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x40]
mov ecx, edx
sub ecx, esi
mov edx, ebx
imul edx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
mov dword [esp], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edi
mov eax, edx
mov ebp, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x2c], esi
xor edi, edi
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x50], ecx
lea ecx, [ebp + ebp]
add ecx, ecx
add ecx, eax
add ecx, dword [esp + 8]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x431649
mov eax, ebp
mov edx, dword [esp + 0x20]
lea edx, [edx + ebp]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebp
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
lea ebp, [eax + eax]
add ebp, ebp
add ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
movzx edi, byte [ebp + ecx]
add esi, edi
movzx edi, byte [ebp + ecx + 1]
add edx, edi
movzx ecx, byte [ebp + ecx + 2]
add ebx, ecx
inc dword [esp + 0x50]
inc eax
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jle 0x431606
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor edx, edx
mov esi, dword [esp + 0x50]
div esi
mov byte [ecx], al
mov eax, dword [esp + 0x30]
xor edx, edx
div esi
mov byte [ecx + 1], al
mov eax, dword [esp + 0x34]
xor edx, edx
div esi
mov byte [ecx + 2], al
add ecx, 4
inc ebp
mov ebx, dword [esp + 0x1c]
cmp ebp, ebx
jle 0x4315dd
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp ebp, ecx
jg 0x43174c
mov ecx, dword [esp + 0x20]
lea edx, [ebp + ecx]
lea ecx, [ebp + ebp]
add ecx, ecx
add ecx, eax
add ecx, dword [esp + 8]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x3c], edx
lea edx, [edx + edx]
add edx, edx
add edx, dword [esp + 0x48]
mov edi, dword [esp + 0x54]
movzx ebp, byte [edx + edi]
mov eax, dword [esp + 0x2c]
add eax, ebp
mov dword [esp + 0x2c], eax
movzx ebp, byte [edx + edi + 1]
mov esi, dword [esp + 0x30]
add esi, ebp
mov dword [esp + 0x30], esi
movzx edx, byte [edx + edi + 2]
mov ebp, dword [esp + 0x34]
add ebp, edx
mov dword [esp + 0x34], ebp
inc ebx
xor edx, edx
div ebx
mov byte [ecx], al
mov eax, esi
xor edx, edx
div ebx
mov byte [ecx + 1], al
mov eax, ebp
xor edx, edx
div ebx
mov byte [ecx + 2], al
mov edx, dword [esp + 0x3c]
inc edx
add ecx, 4
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x4c], eax
mov ebp, dword [esp + 0x14]
cmp eax, ebp
jle 0x4316c9
mov dword [esp + 0x50], ebx
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x431829
mov ecx, dword [esp + 0x20]
lea ecx, [edx + ecx]
lea ebp, [edx + edx]
add ebp, ebp
add ebp, eax
add ebp, dword [esp + 8]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x20]
lea ebp, [eax*4 - 4]
mov edx, dword [esp + 0x48]
add ebp, edx
mov eax, dword [esp + 0x54]
movzx ebx, byte [ebp + eax]
sub ecx, ebx
movzx ebx, byte [ebp + eax + 1]
sub edi, ebx
movzx ebx, byte [ebp + eax + 2]
sub esi, ebx
mov ebx, dword [esp + 0x44]
lea ebx, [ebx + ebx]
add ebx, ebx
add ebx, edx
movzx edx, byte [ebx + eax]
add ecx, edx
movzx edx, byte [ebx + eax + 1]
add edi, edx
movzx eax, byte [ebx + eax + 2]
add esi, eax
mov eax, ecx
xor edx, edx
mov ebx, dword [esp + 0x50]
div ebx
mov edx, dword [esp + 0x28]
mov byte [edx], al
mov eax, edi
xor edx, edx
div ebx
mov edx, dword [esp + 0x28]
mov byte [edx + 1], al
mov eax, esi
xor edx, edx
div ebx
mov edx, dword [esp + 0x28]
mov byte [edx + 2], al
inc dword [esp + 0x44]
add edx, 4
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x24]
cmp eax, edx
jl 0x431786
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
cmp edx, ecx
jge 0x4318cc
lea ecx, [edx + edx]
add ecx, ecx
add ecx, eax
add ecx, dword [esp + 8]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], eax
mov dword [esp + 4], ebx
mov esi, dword [esp + 0x50]
mov dword [esp + 0x3c], edx
sub edx, dword [esp + 0x20]
lea edx, [edx*4 - 4]
add edx, dword [esp + 0x48]
mov edi, dword [esp + 0x54]
movzx ebx, byte [edx + edi]
mov eax, dword [esp + 0x2c]
sub eax, ebx
mov dword [esp + 0x2c], eax
movzx ebx, byte [edx + edi + 1]
mov ebp, dword [esp + 0x30]
sub ebp, ebx
mov dword [esp + 0x30], ebp
movzx edx, byte [edx + edi + 2]
mov ebx, dword [esp + 0x34]
sub ebx, edx
mov dword [esp + 0x34], ebx
dec esi
xor edx, edx
div esi
mov byte [ecx], al
mov eax, ebp
xor edx, edx
div esi
mov byte [ecx + 1], al
mov eax, ebx
xor edx, edx
div esi
mov byte [ecx + 2], al
add ecx, 4
mov edx, dword [esp + 0x3c]
inc edx
mov eax, dword [esp + 0x40]
cmp edx, eax
jl 0x431858
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 4]
add eax, dword [esp + 0x10]
inc ebx
mov ecx, dword [esp + 0xc]
cmp ebx, ecx
jl 0x4315ad
mov eax, dword [esp]
jmp 0x431cdc
cmp ebx, ebp
jge 0x431cdc
lea edx, [edi + 1]
mov dword [esp + 0x3c], edx
lea edx, [edi + esi]
mov dword [esp + 0x18], edx
lea edx, [edi + esi + 1]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x40]
mov ecx, edx
sub ecx, esi
mov edx, ebx
imul edx, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
mov dword [esp], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edi
mov eax, edx
mov ebp, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x28], esi
xor edi, edi
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov dword [esp + 0x48], ecx
lea ecx, [ebp + ebp]
add ecx, ecx
add ecx, eax
add ecx, dword [esp + 8]
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x50], eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x4319dd
mov eax, ebp
mov edx, dword [esp + 0x20]
lea edx, [edx + ebp]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], ebp
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x54]
lea ecx, [eax + eax]
add ecx, ecx
add ecx, dword [esp + 0x50]
movzx edi, byte [ecx + esi]
add ebp, edi
movzx edi, byte [ecx + esi + 1]
add edx, edi
movzx edi, byte [ecx + esi + 2]
add ebx, edi
movzx ecx, byte [ecx + esi + 3]
add dword [esp + 0x44], ecx
inc dword [esp + 0x48]
inc eax
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jle 0x431992
mov dword [esp + 0x38], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
xor edx, edx
div ebx
mov byte [ecx], al
mov eax, dword [esp + 0x24]
xor edx, edx
div ebx
mov byte [ecx + 1], al
mov eax, dword [esp + 0x38]
xor edx, edx
div ebx
mov byte [ecx + 2], al
mov eax, dword [esp + 0x44]
xor edx, edx
div ebx
mov byte [ecx + 3], al
add ecx, 4
inc ebp
mov esi, dword [esp + 0x1c]
cmp ebp, esi
jle 0x431961
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
cmp ebp, ecx
jg 0x431afb
mov ecx, dword [esp + 0x20]
lea edx, [ebp + ecx]
lea ecx, [ebp + ebp]
add ecx, ecx
add ecx, eax
add ecx, dword [esp + 8]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x50], eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
lea esi, [edx + edx]
add esi, esi
add esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
movzx edx, byte [esi + edi]
mov eax, dword [esp + 0x28]
add eax, edx
mov dword [esp + 0x28], eax
movzx edx, byte [esi + edi + 1]
add dword [esp + 0x24], edx
movzx edx, byte [esi + edi + 2]
add dword [esp + 0x38], edx
movzx edx, byte [esi + edi + 3]
mov ebp, dword [esp + 0x44]
add ebp, edx
mov dword [esp + 0x44], ebp
inc ebx
xor edx, edx
div ebx
mov byte [ecx], al
mov eax, dword [esp + 0x24]
xor edx, edx
div ebx
mov byte [ecx + 1], al
mov eax, dword [esp + 0x38]
xor edx, edx
div ebx
mov byte [ecx + 2], al
mov eax, ebp
xor edx, edx
div ebx
mov byte [ecx + 3], al
mov edx, dword [esp + 0x2c]
inc edx
add ecx, 4
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x18]
cmp eax, ebp
jle 0x431a68
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp edx, ecx
jge 0x431bfd
mov ecx, dword [esp + 0x20]
lea ecx, [edx + ecx]
lea ebp, [edx + edx]
add ebp, ebp
add ebp, eax
add ebp, dword [esp + 8]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x50], eax
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x20]
lea ebp, [eax*4 - 4]
mov edx, dword [esp + 0x50]
add ebp, edx
movzx ebx, byte [ebp + ecx]
mov eax, dword [esp + 0x28]
sub eax, ebx
movzx ebx, byte [ebp + ecx + 1]
sub edi, ebx
movzx ebx, byte [ebp + ecx + 2]
sub esi, ebx
movzx ebx, byte [ebp + ecx + 3]
mov ebp, dword [esp + 0x44]
sub ebp, ebx
mov dword [esp + 0x44], ebp
mov ebx, dword [esp + 0x2c]
lea ebx, [ebx + ebx]
add ebx, ebx
add ebx, edx
movzx edx, byte [ebx + ecx]
add eax, edx
mov dword [esp + 0x28], eax
movzx edx, byte [ebx + ecx + 1]
add edi, edx
movzx edx, byte [ebx + ecx + 2]
add esi, edx
movzx edx, byte [ebx + ecx + 3]
add dword [esp + 0x44], edx
xor edx, edx
mov ebx, dword [esp + 0x48]
div ebx
mov edx, dword [esp + 0x4c]
mov byte [edx], al
mov eax, edi
xor edx, edx
div ebx
mov edx, dword [esp + 0x4c]
mov byte [edx + 1], al
mov eax, esi
xor edx, edx
div ebx
mov edx, dword [esp + 0x4c]
mov byte [edx + 2], al
mov eax, dword [esp + 0x44]
xor edx, edx
div ebx
mov edx, dword [esp + 0x4c]
mov byte [edx + 3], al
inc dword [esp + 0x2c]
add edx, 4
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x34]
cmp eax, edx
jl 0x431b35
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
cmp ebp, ecx
jge 0x431cc8
lea ecx, [ebp + ebp]
add ecx, ecx
add ecx, eax
add ecx, dword [esp + 8]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x50], eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x30]
sub edi, dword [esp + 0x20]
lea ebp, [edi*4 - 4]
add ebp, dword [esp + 0x50]
movzx edx, byte [ebp + esi]
mov eax, dword [esp + 0x28]
sub eax, edx
mov dword [esp + 0x28], eax
movzx edx, byte [ebp + esi + 1]
mov edi, dword [esp + 0x24]
sub edi, edx
mov dword [esp + 0x24], edi
movzx edx, byte [ebp + esi + 2]
mov edi, dword [esp + 0x38]
sub edi, edx
mov dword [esp + 0x38], edi
movzx edx, byte [ebp + esi + 3]
mov ebp, dword [esp + 0x44]
sub ebp, edx
mov dword [esp + 0x44], ebp
dec ebx
xor edx, edx
div ebx
mov byte [ecx], al
mov eax, dword [esp + 0x24]
xor edx, edx
div ebx
mov byte [ecx + 1], al
mov eax, edi
xor edx, edx
div ebx
mov byte [ecx + 2], al
mov eax, ebp
xor edx, edx
div ebx
mov byte [ecx + 3], al
add ecx, 4
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x40]
cmp eax, edx
jl 0x431c35
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 4]
add eax, dword [esp + 0x10]
inc ebx
mov ecx, dword [esp + 0xc]
cmp ebx, ecx
jl 0x431927
mov eax, dword [esp]
test eax, eax
je 0x431ce7
push eax
call fcn.004678ff
pop ecx
add esp, 0x58
pop ebx
pop ebp
pop esi
pop edi
ret