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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51eb06
add esp, 0xffffff80
lea eax, [0x782b40]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
call fcn.0051f060
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
jmp 0x51e4c9
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call fcn.0051f060
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test al, al
je 0x51e545
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], edx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov byte [esp + 8], 0x23
call fcn.00402ae0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xffffffff
je 0x51e4fc
mov edx, dword [esp + 0x30]
cmp edx, ecx
jae 0x51e500
jmp 0x51eb00
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x54]
jmp 0x51e563
test ecx, ecx
je 0x51e4ad
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
mov byte [esp + 8], 0x3a
call fcn.00402ae0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xffffffff
je 0x51e5a7
mov edx, dword [esp + 0x30]
cmp edx, ecx
jb 0x51eafb
mov eax, dword [esp + 0x54]
mov ebx, ecx
mov ebp, eax
jmp 0x51e606
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x88], eax
sub esp, 0xffffff80
ret
dec ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add eax, ecx
mov ecx, edx
test ecx, ecx
je 0x51e581
movzx edx, byte [eax]
cmp dl, 0x20
je 0x51e554
cmp dl, 9
je 0x51e554
cmp dl, 0xa
je 0x51e554
cmp dl, 0xd
je 0x51e554
jmp 0x51e581
dec ecx
test ecx, ecx
je 0x51e4ad
movzx edx, byte [eax + ecx - 1]
cmp dl, 0x20
je 0x51e580
cmp dl, 9
je 0x51e580
cmp dl, 0xa
je 0x51e580
cmp dl, 0xd
je 0x51e580
jmp 0x51e506
lea eax, [0x769820]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x10
lea ecx, [0x7bd11c]
mov dword [eax], ecx
lea ecx, [0x844124]
mov edx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [0xaab020]
test ecx, ecx
jne 0x51e5e4
mov dword [edx + 0x18], eax
jmp 0x51e5ec
lea edi, [edx + 0x18]
call fcn.004643b0
mov dword [esp + 0x88], edx
sub esp, 0xffffff80
ret
dec ecx
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add eax, ecx
mov ecx, esi
test ecx, ecx
je 0x51e62c
movzx esi, byte [eax]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x51e5f7
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x51e5f7
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x51e5f7
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x51e5f7
jmp 0x51e62c
dec ecx
test ecx, ecx
je 0x51e651
movzx esi, byte [eax + ecx - 1]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x51e62b
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x51e62b
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x51e62b
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x51e62b
lea esi, [ebx + 1]
cmp edx, esi
jb 0x51eaf2
mov dword [esp + 0x20], ecx
mov dword [esp + 0x48], eax
sub edx, ebx
dec edx
mov ebx, edx
neg edx
sar edx, 0x1f
and esi, edx
lea edx, [ebp + esi]
jmp 0x51e686
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x64]
jmp 0x51e91f
test ebx, ebx
je 0x51e4ad
mov dword [esp + 0x50], edx
mov dword [esp + 0x28], ebx
mov dword [esp], edx
mov dword [esp + 4], ebx
mov byte [esp + 8], 0x20
call fcn.00402ae0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xffffffff
je 0x51e6e4
mov edx, dword [esp + 0x28]
cmp edx, ecx
jb 0x51eaed
lea eax, [ecx + 1]
cmp edx, eax
jb 0x51eae6
sub edx, ecx
dec edx
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x50]
lea ebp, [edx + eax]
jmp 0x51ea8f
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
test eax, eax
je 0x51e7c1
cmp byte [ecx], 0x5b
je 0x51e708
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x51e7c7
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov byte [esp + 8], 0x5d
call fcn.00402ae0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xffffffff
je 0x51ea18
mov edx, dword [esp + 0x44]
cmp edx, ecx
jb 0x51ea7b
cmp ecx, 1
jb 0x51ea6f
mov dword [esp + 0x3c], ecx
lea eax, [ecx - 1]
mov dword [esp + 0x40], eax
mov edx, eax
neg eax
sar eax, 0x1f
and eax, 1
mov ebx, dword [esp + 0x68]
add eax, ebx
mov dword [esp + 0x64], eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0051eb10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
test eax, eax
jne 0x51e973
mov ebp, dword [esp + 0x3c]
lea eax, [ebp + 1]
mov esi, dword [esp + 0x44]
cmp esi, eax
jb 0x51ea68
sub esi, ebp
lea ebp, [esi - 1]
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and eax, ebp
mov ebp, dword [esp + 0x68]
add ebp, eax
mov eax, esi
mov esi, ecx
mov ecx, ebp
mov ebp, ebx
mov ebx, edx
mov edx, dword [esp + 0x2c]
jmp 0x51e7c7
xor ebx, ebx
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
jne 0x51e81f
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x38], ebp
call fcn.0040c7a0
mov eax, dword [0xaab020]
mov ecx, dword [esp]
test eax, eax
jne 0x51e801
mov edx, dword [esp + 0x5c]
mov dword [edx + 0x1c], ecx
jmp 0x51e80f
mov edx, dword [esp + 0x5c]
lea edi, [edx + 0x1c]
mov eax, ecx
call fcn.004643b0
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x58]
lea edi, [esp + 0x6c]
xor eax, eax
call fcn.0046465b
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebp
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + 0x1c]
lea ebx, [0x75d1e0]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 8], edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0xc], ebp
call fcn.00410a00
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
inc ebp
cmp ebx, ebp
jae 0x51e8ce
mov dword [esp + 0x60], ecx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x784de0]
mov dword [esp + 0x10], eax
call fcn.0044b1b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x60]
mov dword [edi + 8], edx
mov edx, dword [0xaab020]
test edx, edx
jne 0x51e8c3
mov dword [edi], eax
jmp 0x51e8c8
call fcn.004643b0
mov ebp, ecx
mov edx, eax
mov ecx, edi
mov dword [ecx + 4], ebp
lea eax, [ebp + ebp*4]
lea edi, [edx + eax*4 - 0x14]
mov eax, dword [0xaab020]
test eax, eax
jne 0x51e8f1
lea esi, [esp + 0x6c]
call fcn.00464b3e
jmp 0x51e676
lea eax, [0x784de0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x6c]
mov dword [esp + 8], eax
call fcn.00411480
jmp 0x51e676
dec ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add edx, ebx
mov ebx, ebp
test ebx, ebx
je 0x51e945
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x51e910
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x51e910
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x51e910
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x51e910
jmp 0x51e945
dec ebx
test ebx, ebx
je 0x51e4ad
movzx ebp, byte [ebx + edx - 1]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x51e944
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x51e944
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x51e944
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x51e944
jmp 0x51e68b
mov dword [esp], 0
lea eax, [0x7be5e3]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x12
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
call fcn.0044ec00
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
lea edx, [0x769820]
mov dword [esp], edx
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov ecx, dword [0xaab020]
test ecx, ecx
jne 0x51e9dc
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
jmp 0x51e9e9
mov edi, eax
mov eax, dword [esp + 0x4c]
call fcn.004643b0
mov eax, edi
lea ecx, [0x844124]
mov edx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [0xaab020]
test ecx, ecx
jne 0x51ea05
mov dword [edx + 0x18], eax
jmp 0x51ea0d
lea edi, [edx + 0x18]
call fcn.004643b0
mov dword [esp + 0x88], edx
sub esp, 0xffffff80
ret
lea eax, [0x769820]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1a
lea ecx, [0x7c5bdc]
mov dword [eax], ecx
lea ecx, [0x844124]
mov edx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [0xaab020]
test ecx, ecx
jne 0x51ea55
mov dword [edx + 0x18], eax
jmp 0x51ea5d
lea edi, [edx + 0x18]
call fcn.004643b0
mov dword [esp + 0x88], edx
sub esp, 0xffffff80
ret
mov ecx, esi
call fcn.00464490
mov eax, 1
xor ecx, ecx
call fcn.00464490
call fcn.00464450
dec ebx
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebp, ebx
mov ebx, esi
test ebx, ebx
je 0x51eab6
movzx esi, byte [ebp]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x51ea80
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x51ea80
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x51ea80
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x51ea80
jmp 0x51eab6
dec ebx
test ebx, ebx
je 0x51eadb
movzx esi, byte [ebp + ebx - 1]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x51eab5
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x51eab5
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x51eab5
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x51eab5
mov eax, ebx
mov edx, ecx
mov ecx, ebp
jmp 0x51e6ec
mov ecx, edx
call fcn.00464490
call fcn.00464450
mov eax, esi
mov ecx, edx
call fcn.00464490
call fcn.00464450
call fcn.00464450
nop
call fcn.00462fa0
jmp fcn.0051e460