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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x51eb19
sub esp, 0x8c
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
call fcn.0051ec60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x94]
cmp eax, ecx
ja 0x51eb13
mov ebx, ecx
sub ecx, eax
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov esi, dword [esp + 0x90]
mov edx, ebx
lea ebx, [esi + ecx]
test ebp, ebp
je 0x51e99f
movzx ecx, byte [esi + ecx]
cmp cl, 0x5c
jne 0x51e994
mov ecx, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x90], ebx
mov byte [esp + 0x26], cl
lea edi, [esp + 0x68]
xor eax, eax
call fcn.00455e47
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], edx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x88], esi
movzx esi, byte [esp + 0x26]
xchg esi, eax
test al, al
xchg esi, eax
je 0x51e98d
test ecx, ecx
je 0x51e904
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jae 0x51eb07
mov byte [edi + eax], 0x5c
inc dword [esp + 0x7c]
mov eax, 1
mov ecx, eax
jmp 0x51e151
mov eax, edi
cmp eax, ebp
jge 0x51e73d
jae 0x51eb00
movzx edi, byte [ebx + eax]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
jne 0x51e16f
lea edi, [eax + 1]
jmp 0x51e14f
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
je 0x51e16a
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x51e736
mov edx, esi
lea esi, [eax + 1]
cmp esi, ebp
jne 0x51e190
mov edi, esi
mov esi, edx
jmp 0x51e14f
jae 0x51eaf7
movzx ebx, byte [eax + ebx + 1]
cmp bl, 0x5c
jne 0x51e1a9
mov ebx, dword [esp + 0x90]
jmp 0x51e18a
cmp bl, 0x2f
jne 0x51e1b7
mov ebx, dword [esp + 0x90]
jmp 0x51e18a
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x51e728
lea ebx, [eax + 1]
cmp ebx, ebp
jae 0x51eaee
mov ebx, dword [esp + 0x90]
movzx esi, byte [eax + ebx + 1]
xchg esi, eax
cmp al, 0x2e
xchg esi, eax
jne 0x51e721
lea esi, [eax + 2]
cmp esi, ebp
jne 0x51e4d2
mov edi, dword [esp + 0x7c]
cmp edi, ecx
jle 0x51e25c
dec edi
mov dword [esp + 0x7c], edi
jmp 0x51e20c
lea edi, [eax - 1]
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jle 0x51e236
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
test ebx, ebx
je 0x51e246
cmp eax, edi
jae 0x51eade
movzx ebx, byte [ebx + eax]
cmp bl, 0x5c
je 0x51e236
cmp bl, 0x2f
jne 0x51e1fe
mov ebx, dword [esp + 0x90]
mov edi, esi
mov esi, edx
jmp 0x51e14f
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp eax, ebx
jae 0x51ead7
movzx ebx, byte [edi + eax]
jmp 0x51e22c
test dl, dl
jne 0x51e236
mov dword [esp + 0x3c], esi
test edi, edi
jle 0x51e4cb
mov eax, ebx
mov ebx, dword [esp + 0x70]
test ebx, ebx
je 0x51e42c
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp edi, ecx
jae 0x51eac7
mov byte [ebx + edi], 0x5c
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
test ebx, ebx
je 0x51e38a
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp edi, ecx
jae 0x51eab0
mov byte [ebx + edi], 0x2e
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
test ebx, ebx
je 0x51e2eb
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp edi, ecx
jae 0x51ea9b
mov byte [ebx + edi], 0x2e
inc dword [esp + 0x7c]
mov ecx, dword [esp + 0x7c]
jmp 0x51e236
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebx, ecx
jge 0x51e313
jae 0x51eaa9
movzx edi, byte [ebx + edi]
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x51e313
inc ebx
mov dword [esp + 0x7c], ebx
jmp 0x51e2e2
mov dword [esp + 0x38], ecx
lea eax, [0x53b4c0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x7c]
cmp ebp, edx
ja 0x51eaa2
cmp ecx, ebp
jle 0x51e386
cmp eax, ebx
je 0x51e36d
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00456550
mov eax, dword [esp + 0x90]
movzx edx, byte [esp + 0x26]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
jmp 0x51e2c6
mov ebp, ecx
jmp 0x51e359
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebx, ecx
jge 0x51e3b5
jae 0x51eac0
movzx edi, byte [edi + ebx]
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x51e3b5
inc ebx
mov dword [esp + 0x7c], ebx
jmp 0x51e2be
mov dword [esp + 0x38], ecx
lea eax, [0x53b4c0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebp, ebx
ja 0x51eab7
cmp ecx, ebp
jle 0x51e428
cmp eax, edx
je 0x51e40f
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00456550
mov eax, dword [esp + 0x90]
movzx edx, byte [esp + 0x26]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
jmp 0x51e2a2
mov ebp, ecx
jmp 0x51e3fb
mov ebx, dword [esp + 0x6c]
mov ecx, ebp
mov ebp, dword [esp + 0x68]
cmp edi, ebx
jge 0x51e454
movzx ebp, byte [ebp + edi]
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
jne 0x51e454
lea ebx, [edi + 1]
mov dword [esp + 0x7c], ebx
mov ebp, ecx
jmp 0x51e296
mov dword [esp + 0x38], ebx
lea eax, [0x53b4c0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebp, ebx
ja 0x51eace
cmp ecx, ebp
jle 0x51e4c7
cmp eax, edx
je 0x51e4ae
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00456550
mov eax, dword [esp + 0x90]
movzx edx, byte [esp + 0x26]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
jmp 0x51e27a
mov ebp, ecx
jmp 0x51e49a
mov eax, ebx
jmp 0x51e296
jae 0x51eae5
movzx edi, byte [eax + ebx + 2]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x51e1ef
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
je 0x51e1ef
test dl, dl
mov dword [esp + 0x30], ecx
je 0x51e70a
cmp dword [esp + 0x7c], 1
je 0x51e708
mov esi, dword [esp + 0x70]
test esi, esi
je 0x51e65e
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x7c]
cmp ebx, esi
jae 0x51ea82
mov byte [edi + ebx], 0x5c
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x90]
jmp 0x51e54b
inc eax
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x90]
mov ebx, edi
mov ebp, esi
cmp eax, ebp
jge 0x51e655
jae 0x51ea7b
movzx esi, byte [eax + ebx]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
je 0x51e655
xchg esi, eax
cmp al, 0x2f
xchg esi, eax
je 0x51e655
mov edi, dword [esp + 0x70]
test edi, edi
je 0x51e59a
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
cmp ebp, edi
jae 0x51ea62
xchg esi, eax
mov byte [ebx + ebp], al
xchg esi, eax
inc dword [esp + 0x7c]
jmp 0x51e53b
mov dword [esp + 0x2c], eax
xchg esi, eax
mov byte [esp + 0x27], al
xchg esi, eax
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
cmp edi, ebx
jge 0x51e5d5
jae 0x51ea72
movzx ebp, byte [ebp + edi]
xchg ebp, eax
xchg esi, ebx
cmp al, bl
xchg esi, ebx
xchg ebp, eax
jne 0x51e5d5
lea ebx, [edi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x51e53b
mov dword [esp + 0x38], ebx
lea eax, [0x53b4c0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x7c]
cmp ebp, edx
ja 0x51ea6b
cmp ecx, ebp
jle 0x51e651
cmp eax, ebx
je 0x51e62f
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00456550
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + 0x26]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x40]
movzx esi, byte [esp + 0x27]
jmp 0x51e57b
mov ebp, ecx
jmp 0x51e61b
mov esi, edx
mov edi, eax
jmp 0x51e14f
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
cmp esi, edi
jge 0x51e68d
jae 0x51ea92
movzx ebx, byte [ebx + esi]
cmp bl, 0x5c
jne 0x51e68d
lea ebx, [esi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x51e532
mov dword [esp + 0x38], edi
lea eax, [0x53b4c0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edi
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x7c]
cmp ebp, edx
ja 0x51ea8b
cmp ecx, ebp
jle 0x51e704
cmp eax, ebx
je 0x51e6e7
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00456550
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + 0x26]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x40]
jmp 0x51e516
mov ebp, ecx
jmp 0x51e6d3
test dl, dl
jne 0x51e532
mov esi, dword [esp + 0x7c]
test esi, esi
jne 0x51e50a
jmp 0x51e532
test dl, dl
jmp 0x51e4f5
test dl, dl
mov ebx, dword [esp + 0x90]
jmp 0x51e4f5
mov edx, esi
jmp 0x51e1bc
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jne 0x51e76d
mov ebp, dword [esp + 0x70]
test ebp, ebp
je 0x51e879
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jae 0x51ea56
mov byte [ebx + eax], 0x2e
inc dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x51e850
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
cmp ecx, ebx
ja 0x51ea4a
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x51ea43
mov dword [esp + 0x64], ebp
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x44]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call fcn.00443970
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov edx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.004437f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
nop
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x55a9dc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x55a9ee]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.004ae9b0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
add esp, 0x8c
ret
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x7c]
cmp ecx, edx
ja 0x51ea51
mov edx, eax
mov eax, ecx
mov ecx, edx
jmp 0x51e7fa
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
cmp ebx, eax
jge 0x51e89d
movzx ebp, byte [ebp + ebx]
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
jne 0x51e89d
lea eax, [ebx + 1]
mov dword [esp + 0x7c], eax
jmp 0x51e76d
mov dword [esp + 0x40], eax
lea ecx, [0x53b4c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x7c]
cmp ebp, edx
ja 0x51ea5b
cmp ecx, ebp
jle 0x51e900
cmp eax, ebx
je 0x51e751
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00456550
jmp 0x51e751
mov ebp, ecx
jmp 0x51e8e3
mov edi, dword [esp + 0x68]
test ebp, ebp
jle 0x51e91e
cmp byte [edi], 0x5c
jne 0x51e91e
mov dword [esp + 0x7c], 1
jmp 0x51e146
lea eax, [0x53b4c0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.00440360
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x7c]
cmp ebp, edx
ja 0x51eb0c
cmp ecx, ebp
jle 0x51e989
cmp eax, ebx
je 0x51e974
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00456550
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x40]
movzx esi, byte [esp + 0x26]
jmp 0x51e12a
mov ebp, ecx
jmp 0x51e960
xor eax, eax
jmp 0x51e14b
cmp cl, 0x2f
sete cl
jmp 0x51e0d0
cmp eax, 1
jle 0x51e9aa
cmp byte [esi + 1], 0x3a
jne 0x51e9ed
mov dword [esp], 0
mov dword [esp + 4], esi
mov dword [esp + 8], edx
lea eax, [0x55a9db]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call fcn.004437f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
add esp, 0x8c
ret
nop
mov dword [esp], esi
mov dword [esp + 4], edx
lea eax, [0x55a9dc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x55a9ee]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.004ae9b0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
add esp, 0x8c
ret
mov ecx, ebx
call fcn.00455cb0
mov edx, ebx
call fcn.00455c90
call fcn.00455c90
call fcn.00455c70
mov ecx, ebp
call fcn.00455c90
mov eax, ebp
mov ecx, edi
call fcn.00455c70
mov ecx, ebp
call fcn.00455c90
mov eax, edi
mov ecx, ebx
call fcn.00455c70
mov ecx, ebp
call fcn.00455c70
mov eax, ebx
mov ecx, esi
call fcn.00455c70
mov ecx, ebp
call fcn.00455c90
mov eax, esi
mov ecx, edi
call fcn.00455c70
mov eax, edi
call fcn.00455c70
mov ecx, ebp
call fcn.00455c90
mov eax, ebx
call fcn.00455c70
mov eax, edi
call fcn.00455c70
mov ecx, ebp
mov edx, ebx
call fcn.00455c90
mov eax, ebx
call fcn.00455c70
mov eax, edi
call fcn.00455c70
mov ecx, ebp
mov edx, ebx
call fcn.00455c90
mov ecx, ebx
call fcn.00455c70
mov ecx, edi
call fcn.00455c70
mov eax, esi
mov ecx, ebp
call fcn.00455c70
mov eax, ebx
mov ecx, ebp
call fcn.00455c70
mov eax, esi
mov ecx, ebp
call fcn.00455c70
mov ecx, ebp
call fcn.00455c70
call fcn.00455c70
mov ecx, ebp
call fcn.00455c90
call fcn.00455cd0
nop
call fcn.004543b0
jmp fcn.0051e050