Function at 0x512d60
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 0x513795
sub esp, 0x8c
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
call fcn.00513de0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x94]
cmp ecx, eax
jb 0x51378f
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 0x512ee8
movzx ecx, byte [esi + ecx]
cmp cl, 0x5c
jne 0x512dde
mov ecx, 1
jmp 0x512de4
cmp cl, 0x2f
sete cl
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x64], ebx
mov byte [esp + 0x26], cl
lea edi, [esp + 0x68]
xor eax, eax
call fcn.0045f087
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 0x512edf
test ecx, ecx
jne 0x512ebc
mov edi, dword [esp + 0x68]
test ebp, ebp
je 0x512e55
cmp byte [edi], 0x5c
jne 0x512e55
mov dword [esp + 0x7c], 1
jmp 0x512ed8
lea eax, [0x523f00]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004473b0
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 + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebx, ebp
jb 0x513786
cmp ebp, ecx
jl 0x512e99
mov ebp, ecx
cmp edx, eax
je 0x512eb1
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045f780
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x64]
mov ebp, ecx
movzx esi, byte [esp + 0x26]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
cmp ecx, eax
jbe 0x513781
mov byte [edi + eax], 0x5c
inc dword [esp + 0x7c]
mov eax, 1
jmp 0x512ee1
xor eax, eax
mov ecx, eax
jmp 0x512f8e
cmp eax, 1
jle 0x512f49
cmp byte [esi + 1], 0x3a
je 0x512f49
nop
mov dword [esp], esi
mov dword [esp + 4], edx
lea eax, [0x53460d]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x53461b]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.004adaf0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x8c
ret
mov dword [esp], 0
mov dword [esp + 4], esi
mov dword [esp + 8], edx
lea eax, [0x53460c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call fcn.0044ccc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x8c
ret
mov eax, edi
cmp eax, ebp
jge 0x5133b4
jae 0x51377a
movzx edi, byte [eax + ebx]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x512fae
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
jne 0x512fb3
lea edi, [eax + 1]
jmp 0x512f8c
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x5132b5
mov edx, esi
lea esi, [eax + 1]
cmp ebp, esi
je 0x512fe6
jbe 0x513771
movzx ebx, byte [eax + ebx + 1]
cmp bl, 0x5c
jne 0x512fdd
mov ebx, dword [esp + 0x64]
jmp 0x512fe6
cmp bl, 0x2f
jne 0x512fec
mov ebx, dword [esp + 0x64]
mov edi, esi
mov esi, edx
jmp 0x512f8c
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x5132ad
cmp ebp, esi
jbe 0x513768
mov ebx, dword [esp + 0x64]
lea esi, [eax + ebx + 1]
cmp byte [esi], 0x2e
jne 0x5132a9
lea esi, [eax + 2]
cmp ebp, esi
je 0x513034
jbe 0x51375f
movzx edi, byte [eax + ebx + 2]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x513034
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
jne 0x5132a5
mov edi, dword [esp + 0x7c]
cmp ecx, edi
jge 0x513046
dec edi
mov dword [esp + 0x7c], edi
jmp 0x513704
test dl, dl
je 0x513055
mov eax, ebx
mov ebx, ecx
mov ecx, ebp
jmp 0x5136a4
mov dword [esp + 0x3c], esi
test edi, edi
jle 0x51311e
mov eax, ebx
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x5130fe
mov ebx, dword [esp + 0x6c]
mov ecx, ebp
mov ebp, dword [esp + 0x68]
cmp ebx, edi
jle 0x513091
add ebp, edi
cmp byte [ebp], 0x5c
jne 0x513091
lea ebx, [edi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x513122
mov dword [esp + 0x38], ebx
lea eax, [0x523f00]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.004473b0
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 ebx, ebp
jb 0x5136f0
cmp ebp, ecx
jl 0x5130d9
mov ebp, ecx
cmp edx, eax
je 0x5130ed
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045f780
mov eax, dword [esp + 0x64]
movzx edx, byte [esp + 0x26]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp ecx, edi
jbe 0x5136e9
mov byte [ebx + edi], 0x5c
inc dword [esp + 0x7c]
mov ecx, ebp
jmp 0x513122
mov eax, ebx
mov ecx, ebp
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x5131c2
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebx, ebp
jge 0x513155
jae 0x5136e0
add edi, ebx
cmp byte [edi], 0x2e
jne 0x513155
inc ebx
mov dword [esp + 0x7c], ebx
jmp 0x5131df
mov dword [esp + 0x38], ebp
lea eax, [0x523f00]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004473b0
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 0x5136d7
cmp ebp, ecx
jl 0x51319d
mov ebp, ecx
cmp edx, eax
je 0x5131b1
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045f780
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
movzx edx, byte [esp + 0x26]
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp ebx, edi
jbe 0x5136ce
mov byte [ebp + edi], 0x2e
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x51327f
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebp, ebx
jle 0x513212
jbe 0x5136c5
add edi, ebx
cmp byte [edi], 0x2e
jne 0x513212
inc ebx
mov dword [esp + 0x7c], ebx
jmp 0x51329c
mov dword [esp + 0x38], ebp
lea eax, [0x523f00]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004473b0
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 0x5136bc
cmp ebp, ecx
jl 0x51325a
mov ebp, ecx
cmp edx, eax
je 0x51326e
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045f780
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
movzx edx, byte [esp + 0x26]
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp edi, ebx
jae 0x5136b3
mov byte [ebp + edi], 0x2e
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x7c]
jmp 0x5136a4
test dl, dl
jmp 0x5132bb
test dl, dl
jmp 0x5132bb
test dl, dl
mov ebx, dword [esp + 0x64]
jmp 0x5132bb
xchg esi, eax
test al, al
xchg esi, eax
mov edx, esi
mov dword [esp + 0x30], ecx
je 0x5132d0
cmp dword [esp + 0x7c], 1
jne 0x5132dc
test dl, dl
jne 0x513571
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x513571
mov esi, dword [esp + 0x70]
test esi, esi
jne 0x513386
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
cmp esi, edi
jge 0x513315
jae 0x51369b
add ebx, esi
cmp byte [ebx], 0x5c
jne 0x513315
lea ebx, [esi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x5133a2
mov dword [esp + 0x38], edi
lea eax, [0x523f00]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edi
call fcn.004473b0
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 0x513692
cmp ebp, ecx
jl 0x51335d
mov ebp, ecx
cmp edx, eax
je 0x513371
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045f780
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + 0x26]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x7c]
cmp ebx, esi
jae 0x513689
mov byte [edi + ebx], 0x5c
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x64]
jmp 0x513571
mov esi, edx
mov edi, eax
jmp 0x512f8c
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jne 0x51345d
mov ebp, dword [esp + 0x70]
test ebp, ebp
jne 0x513441
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
cmp eax, ebx
jle 0x5133e5
add ebp, ebx
cmp byte [ebp], 0x2e
jne 0x5133e5
lea eax, [ebx + 1]
mov dword [esp + 0x7c], eax
jmp 0x51345d
mov dword [esp + 0x40], eax
lea ecx, [0x523f00]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.004473b0
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 + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebp, ebx
ja 0x51355f
cmp ebp, ecx
jl 0x51342d
mov ebp, ecx
cmp edx, eax
je 0x513441
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045f780
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jae 0x51355a
mov byte [ebx + eax], 0x2e
inc dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
test eax, eax
je 0x5134d4
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
cmp ecx, ebx
ja 0x513553
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x51354c
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
call fcn.0044cf70
mov dword [esp], 0
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
call fcn.0044ccc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x5134f1
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x7c]
cmp edx, ecx
jb 0x513547
nop
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x53460d]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x53461b]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.004adaf0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x8c
ret
call fcn.0045ef10
mov ecx, ebx
call fcn.0045ef30
mov edx, ebx
call fcn.0045ef10
call fcn.0045eef0
mov ecx, ebp
mov edx, ebx
call fcn.0045ef10
inc eax
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x64]
cmp eax, ebp
jge 0x5133ab
jae 0x513682
movzx esi, byte [eax + ebx]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
je 0x5133ab
xchg esi, eax
cmp al, 0x2f
xchg esi, eax
je 0x5133ab
mov edi, dword [esp + 0x70]
test edi, edi
jne 0x513649
mov dword [esp + 0x34], 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 ebx, edi
jle 0x5135d7
jbe 0x513679
add ebp, edi
xchg esi, eax
cmp byte [ebp], al
xchg esi, eax
jne 0x5135d7
lea ebx, [edi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x513568
mov dword [esp + 0x38], ebx
lea eax, [0x523f00]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.004473b0
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 ebx, ebp
jb 0x513670
cmp ebp, ecx
jl 0x51361b
mov ebp, ecx
cmp edx, eax
je 0x51362f
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045f780
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + 0x26]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
movzx esi, byte [esp + 0x27]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
cmp edi, ebp
jbe 0x513667
xchg esi, eax
mov byte [ebx + ebp], al
xchg esi, eax
inc dword [esp + 0x7c]
jmp 0x513568
mov eax, ebp
mov ecx, edi
call fcn.0045eef0
mov ecx, ebp
mov edx, ebx
call fcn.0045ef10
mov eax, edi
mov ecx, ebx
call fcn.0045eef0
mov ecx, ebp
call fcn.0045eef0
mov eax, ebx
mov ecx, esi
call fcn.0045eef0
mov ecx, ebp
mov edx, ebx
call fcn.0045ef10
mov eax, esi
mov ecx, edi
call fcn.0045eef0
mov ebp, ecx
mov edi, esi
mov ecx, ebx
mov ebx, eax
mov esi, edx
jmp 0x512f8c
mov eax, edi
mov ecx, ebx
call fcn.0045eef0
mov ecx, ebp
mov edx, ebx
call fcn.0045ef10
mov eax, ebx
mov ecx, ebp
call fcn.0045eef0
mov eax, edi
mov ecx, ebx
call fcn.0045eef0
mov ecx, ebp
mov edx, ebx
call fcn.0045ef10
mov eax, ebx
mov ecx, ebp
call fcn.0045eef0
mov eax, edi
call fcn.0045eef0
mov ecx, ebp
mov edx, ebx
call fcn.0045ef10
lea edi, [eax - 1]
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x7c]
cmp ecx, eax
jge 0x513746
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
test edi, edi
je 0x513722
cmp ebx, eax
jbe 0x513758
movzx ebx, byte [edi + eax]
jmp 0x513732
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebx, eax
jbe 0x513751
movzx ebx, byte [edi + eax]
cmp bl, 0x5c
je 0x513742
cmp bl, 0x2f
jne 0x5136f9
mov ebx, dword [esp + 0x64]
jmp 0x513746
mov ebx, dword [esp + 0x64]
mov eax, ebx
mov ebx, ecx
mov ecx, ebp
jmp 0x5136a4
mov ecx, ebx
call fcn.0045eef0
mov ecx, ebx
call fcn.0045eef0
mov eax, esi
mov ecx, ebp
call fcn.0045eef0
mov eax, esi
mov ecx, ebp
call fcn.0045eef0
mov eax, esi
mov ecx, ebp
call fcn.0045eef0
mov ecx, ebp
call fcn.0045eef0
call fcn.0045eef0
mov ecx, ebp
mov edx, ebx
call fcn.0045ef10
call fcn.0045ef50
nop
call fcn.0045daa0
jmp fcn.00512d60