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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5135c6
sub esp, 0x74
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x512f14
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x54de8a]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.0046c040
mov eax, dword [esp + 0x10]
test eax, eax
je 0x512ea2
lea ecx, [eax + 1]
mov edx, dword [esp + 0x7c]
cmp edx, ecx
je 0x512e73
mov dword [esp + 0x5c], eax
mov dword [esp + 0x28], ecx
lea eax, [0x530ee0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], edx
call fcn.00446320
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
cmp ecx, 0xffffffff
je 0x512e68
mov edx, dword [esp + 0x7c]
cmp edx, ecx
jb 0x5135c0
mov ebx, dword [esp + 0x78]
mov ebp, edx
xor esi, esi
xor edi, edi
jmp 0x513519
xor ecx, ecx
mov edx, dword [esp + 0x7c]
jmp 0x512f44
mov eax, dword [esp + 0x78]
mov dword [esp + 0x80], eax
lea eax, [edx - 1]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x74
ret
lea eax, [0x53f020]
mov dword [esp], eax
call fcn.0040b290
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x7c]
mov dword [edi + 4], eax
mov eax, dword [0x68ad40]
test eax, eax
jne 0x512ecd
mov eax, dword [esp + 0x78]
mov dword [edi], eax
jmp 0x512ed6
mov eax, dword [esp + 0x78]
call fcn.0045c980
mov dword [edi + 0xc], 2
lea eax, [0x54ded3]
mov dword [edi + 8], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [0x587a6c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edi
add esp, 0x74
ret
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x74
ret
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x28]
xor edi, edi
mov edi, 0x48
mov dword [esp + 0x48], edi
mov edi, pe_nt_image_headers32
mov dword [esp + 0x34], edi
xor edi, edi
jmp 0x512f99
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x54]
mov dword [eax + edx*4], ebx
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov ecx, edi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x50]
cmp ebx, esi
jle 0x513166
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x60], eax
mov eax, 1
mov dword [esp + 0x20], eax
mov eax, 0x24
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
jmp 0x5131cb
mov edx, dword [esp + 0x40]
mov ebx, ebp
sub ebp, edx
test edx, edx
jne 0x512fe9
mov edx, eax
mov eax, 0x5d9f7391
mov edi, edx
imul ebp
sar edx, 8
sar ebp, 0x1f
sub edx, ebp
jmp 0x512ff6
mov edi, ebp
shr ebp, 0x1f
lea edx, [ebp + edi]
sar edx, 1
mov edi, eax
lea ebp, [ecx + 1]
test ebp, ebp
je 0x5134fa
mov dword [esp + 0x44], edx
mov eax, edx
cmp ebp, 0xffffffff
je 0x513011
cdq
idiv ebp
jmp 0x513013
neg eax
mov edx, dword [esp + 0x44]
add edx, eax
xor eax, eax
jmp 0x51345c
mov dword [esp + 0x58], esi
lea esi, [edx + edx*8]
cmp edx, 0xffffffda
je 0x5134f5
mov dword [esp + 0x70], edi
mov eax, ebx
cdq
idiv ebp
mov edx, dword [esp + 0x34]
add edx, eax
mov eax, ebx
mov ebx, edx
cdq
idiv ebp
mov dword [esp + 0x40], edx
shl esi, 2
mov edx, dword [esp + 0x44]
add edx, 0x26
mov eax, esi
mov edi, edx
cmp edi, 0xffffffff
je 0x513062
cdq
idiv edi
jmp 0x513064
neg eax
mov edx, dword [esp + 0x3c]
add edx, eax
cmp ebx, 0x10ffff
jg 0x513471
cmp ecx, 0x400
jge 0x513471
mov dword [esp + 0x48], edx
mov dword [esp + 0x54], ebx
mov esi, dword [esp + 0x30]
cmp esi, ebp
jb 0x513098
mov eax, dword [esp + 0x70]
jmp 0x5130db
mov dword [esp + 0x2c], ecx
lea eax, [0x530ee0]
mov dword [esp], eax
mov edx, dword [esp + 0x70]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.004464a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x54]
mov esi, edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0
mov edi, dword [esp + 0x40]
mov ecx, edx
lea edx, [edi + 1]
cmp ebp, edx
jb 0x5134ec
mov dword [esp + 0x30], esi
mov dword [esp + 0x50], edx
sub esi, edi
dec esi
xchg esi, ebx
neg ebx
xchg esi, ebx
shl edx, 2
sar esi, 0x1f
and esi, edx
lea edx, [esi + eax]
mov esi, ebp
sub ebp, edi
cmp esi, edi
jb 0x5134e3
mov dword [esp + 0x5c], esi
dec ebp
sub esi, edi
mov ebx, dword [esp + 0x30]
sub ebx, edi
neg ebx
shl edi, 2
sar ebx, 0x1f
and ebx, edi
add ebx, eax
cmp esi, ebp
jl 0x51313a
mov esi, ebp
cmp ebx, edx
je 0x512f68
mov dword [esp + 0x68], eax
mov dword [esp], edx
mov dword [esp + 4], ebx
shl esi, 2
mov dword [esp + 8], esi
call fcn.0045d2d0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x48]
jmp 0x512f68
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00449d50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x74
ret
mov edx, dword [esp + 0x38]
add edx, 0x24
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
mov edi, ebp
mov ebp, dword [esp + 0x78]
cmp ebx, esi
je 0x5133d3
jbe 0x5134ff
movzx edx, byte [ebp + esi]
lea ebp, [edx - 0x30]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
ja 0x5131f5
add edx, 0xffffffea
movzx edx, dl
mov ebp, 1
jmp 0x513221
lea ebp, [edx - 0x41]
xchg ebp, eax
cmp al, 0x19
xchg ebp, eax
ja 0x51320b
xchg ebp, eax
movzx edx, al
xchg ebp, eax
mov ebp, 1
jmp 0x513221
add edx, 0xffffff9f
cmp dl, 0x19
ja 0x51321d
movzx edx, dl
mov ebp, 1
jmp 0x513221
xor edx, edx
xor ebp, ebp
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x513361
mov ebp, dword [esp + 0x20]
imul ebp, edx
add ebp, edi
test ebp, ebp
jl 0x5132ef
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x48]
sub edi, ebx
cmp edi, 1
jge 0x513252
mov edi, 1
jmp 0x51325c
cmp edi, 0x1a
jle 0x51325c
mov edi, 0x1a
inc esi
cmp edi, edx
jg 0x512fc8
lea edx, [edi - 0x24]
neg edx
mov edi, dword [esp + 0x20]
imul edi, edx
cmp edi, 0x38e38e3
jl 0x5131ae
lea eax, [0x53f020]
mov dword [esp], eax
call fcn.0040b290
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x7c]
mov dword [edi + 4], eax
mov eax, dword [0x68ad40]
test eax, eax
jne 0x5132a8
mov eax, dword [esp + 0x78]
mov dword [edi], eax
jmp 0x5132b1
mov eax, dword [esp + 0x78]
call fcn.0045c980
mov dword [edi + 0xc], 2
lea eax, [0x54ded3]
mov dword [edi + 8], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [0x587a6c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edi
add esp, 0x74
ret
lea eax, [0x53f020]
mov dword [esp], eax
call fcn.0040b290
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x7c]
mov dword [edi + 4], eax
mov eax, dword [0x68ad40]
test eax, eax
jne 0x51331a
mov eax, dword [esp + 0x78]
mov dword [edi], eax
jmp 0x513323
mov eax, dword [esp + 0x78]
call fcn.0045c980
mov dword [edi + 0xc], 2
lea eax, [0x54ded3]
mov dword [edi + 8], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [0x587a6c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edi
add esp, 0x74
ret
lea eax, [0x53f020]
mov dword [esp], eax
call fcn.0040b290
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x7c]
mov dword [edi + 4], eax
mov eax, dword [0x68ad40]
test eax, eax
jne 0x51338c
mov eax, dword [esp + 0x78]
mov dword [edi], eax
jmp 0x513395
mov eax, dword [esp + 0x78]
call fcn.0045c980
mov dword [edi + 0xc], 2
lea eax, [0x54ded3]
mov dword [edi + 8], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [0x587a6c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edi
add esp, 0x74
ret
lea eax, [0x53f020]
mov dword [esp], eax
call fcn.0040b290
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x7c]
mov dword [edi + 4], eax
mov eax, dword [0x68ad40]
test eax, eax
jne 0x5133fe
mov eax, dword [esp + 0x78]
mov dword [edi], eax
jmp 0x513407
mov eax, dword [esp + 0x78]
call fcn.0045c980
mov dword [edi + 0xc], 2
lea eax, [0x54ded3]
mov dword [edi + 8], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [0x587a6c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edi
add esp, 0x74
ret
mov eax, 0xea0ea0eb
imul edx
mov eax, dword [esp + 0x44]
add edx, eax
sar edx, 5
mov eax, dword [esp + 0x3c]
add eax, 0x24
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], eax
cmp edx, 0x1c7
jg 0x513445
jmp 0x513020
lea eax, [0x53f020]
mov dword [esp], eax
call fcn.0040b290
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x7c]
mov dword [edi + 4], eax
mov eax, dword [0x68ad40]
test eax, eax
jne 0x51349c
mov eax, dword [esp + 0x78]
mov dword [edi], eax
jmp 0x5134a5
mov eax, dword [esp + 0x78]
call fcn.0045c980
mov dword [edi + 0xc], 2
lea eax, [0x54ded3]
mov dword [edi + 8], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [0x587a6c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edi
add esp, 0x74
ret
mov eax, edi
mov ecx, esi
call fcn.0045ca60
mov eax, edx
mov ecx, ebp
call fcn.0045ca60
call fcn.00430800
call fcn.00430800
mov eax, esi
mov ecx, ebx
call fcn.0045ca00
mov dword [eax + edi*4], ebp
mov ebp, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
mov edi, ebx
mov ebx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5135b9
mov dword [esp + 0x2c], edi
movzx ebp, byte [ebx + esi]
cmp ebp, 0x80
jge 0x513534
inc esi
jmp 0x513568
mov dword [esp + 0x30], edx
mov dword [esp + 0x6c], eax
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00456bb0
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x2c]
lea ebx, [edi + 1]
cmp edx, ebx
jae 0x513508
mov dword [esp + 0x24], ebp
mov dword [esp + 0x4c], esi
lea ecx, [0x530ee0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.004464a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
jmp 0x513508
mov ecx, edi
jmp 0x512f44
call fcn.0045ca20
nop
call fcn.0045b540
jmp fcn.00512dc0