Function at 0x4c1540
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 0x4c1f75
sub esp, 0x8c
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
call fcn.004c2270
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x94]
cmp ecx, eax
jb 0x4c1f6f
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 0x4c16c8
movzx ecx, byte [esi + ecx]
cmp cl, 0x5c
jne 0x4c15be
mov ecx, 1
jmp 0x4c15c4
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.0045e877
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 0x4c16bf
test ecx, ecx
jne 0x4c169c
mov edi, dword [esp + 0x68]
test ebp, ebp
jle 0x4c1635
cmp byte [edi], 0x5c
jne 0x4c1635
mov dword [esp + 0x7c], 1
jmp 0x4c16b8
lea eax, [0x60da40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.00447550
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 0x4c1f66
cmp ebp, ecx
jl 0x4c1679
mov ebp, ecx
cmp edx, eax
je 0x4c1691
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045ef80
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 0x4c1f61
mov byte [edi + eax], 0x5c
inc dword [esp + 0x7c]
mov eax, 1
jmp 0x4c16c1
xor eax, eax
mov ecx, eax
jmp 0x4c176e
cmp eax, 1
jle 0x4c1729
cmp byte [esi + 1], 0x3a
je 0x4c1729
nop
mov dword [esp], esi
mov dword [esp + 4], edx
lea eax, [0x63c32d]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x63c33e]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.004bf760
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, [0x63c32c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call fcn.0044aa10
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 0x4c1b94
jae 0x4c1f5a
movzx edi, byte [eax + ebx]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x4c178e
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
jne 0x4c1793
lea edi, [eax + 1]
jmp 0x4c176c
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x4c1a95
mov edx, esi
lea esi, [eax + 1]
cmp ebp, esi
je 0x4c17c6
jbe 0x4c1f51
movzx ebx, byte [eax + ebx + 1]
cmp bl, 0x5c
jne 0x4c17bd
mov ebx, dword [esp + 0x64]
jmp 0x4c17c6
cmp bl, 0x2f
jne 0x4c17cc
mov ebx, dword [esp + 0x64]
mov edi, esi
mov esi, edx
jmp 0x4c176c
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x4c1a8d
cmp ebp, esi
jbe 0x4c1f48
mov ebx, dword [esp + 0x64]
lea esi, [eax + ebx + 1]
cmp byte [esi], 0x2e
jne 0x4c1a89
lea esi, [eax + 2]
cmp ebp, esi
je 0x4c1814
jbe 0x4c1f3f
movzx edi, byte [eax + ebx + 2]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x4c1814
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
jne 0x4c1a85
mov edi, dword [esp + 0x7c]
cmp ecx, edi
jge 0x4c1826
dec edi
mov dword [esp + 0x7c], edi
jmp 0x4c1ee4
test dl, dl
je 0x4c1835
mov eax, ebx
mov ebx, ecx
mov ecx, ebp
jmp 0x4c1e84
mov dword [esp + 0x3c], esi
test edi, edi
jle 0x4c18fe
mov eax, ebx
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x4c18de
mov ebx, dword [esp + 0x6c]
mov ecx, ebp
mov ebp, dword [esp + 0x68]
cmp ebx, edi
jle 0x4c1871
add ebp, edi
cmp byte [ebp], 0x5c
jne 0x4c1871
lea ebx, [edi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x4c1902
mov dword [esp + 0x38], ebx
lea eax, [0x60da40]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00447550
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 0x4c1ed0
cmp ebp, ecx
jl 0x4c18b9
mov ebp, ecx
cmp edx, eax
je 0x4c18cd
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045ef80
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 0x4c1ec9
mov byte [ebx + edi], 0x5c
inc dword [esp + 0x7c]
mov ecx, ebp
jmp 0x4c1902
mov eax, ebx
mov ecx, ebp
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x4c19a2
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebx, ebp
jge 0x4c1935
jae 0x4c1ec0
add edi, ebx
cmp byte [edi], 0x2e
jne 0x4c1935
inc ebx
mov dword [esp + 0x7c], ebx
jmp 0x4c19bf
mov dword [esp + 0x38], ebp
lea eax, [0x60da40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.00447550
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 0x4c1eb7
cmp ebp, ecx
jl 0x4c197d
mov ebp, ecx
cmp edx, eax
je 0x4c1991
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045ef80
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 0x4c1eae
mov byte [ebp + edi], 0x2e
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x4c1a5f
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebp, ebx
jle 0x4c19f2
jbe 0x4c1ea5
add edi, ebx
cmp byte [edi], 0x2e
jne 0x4c19f2
inc ebx
mov dword [esp + 0x7c], ebx
jmp 0x4c1a7c
mov dword [esp + 0x38], ebp
lea eax, [0x60da40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.00447550
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 0x4c1e9c
cmp ebp, ecx
jl 0x4c1a3a
mov ebp, ecx
cmp edx, eax
je 0x4c1a4e
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045ef80
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 0x4c1e93
mov byte [ebp + edi], 0x2e
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x7c]
jmp 0x4c1e84
test dl, dl
jmp 0x4c1a9b
test dl, dl
jmp 0x4c1a9b
test dl, dl
mov ebx, dword [esp + 0x64]
jmp 0x4c1a9b
xchg esi, eax
test al, al
xchg esi, eax
mov edx, esi
mov dword [esp + 0x30], ecx
je 0x4c1ab0
cmp dword [esp + 0x7c], 1
jne 0x4c1abc
test dl, dl
jne 0x4c1d51
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x4c1d51
mov esi, dword [esp + 0x70]
test esi, esi
jne 0x4c1b66
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
cmp esi, edi
jge 0x4c1af5
jae 0x4c1e7b
add ebx, esi
cmp byte [ebx], 0x5c
jne 0x4c1af5
lea ebx, [esi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x4c1b82
mov dword [esp + 0x38], edi
lea eax, [0x60da40]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edi
call fcn.00447550
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 0x4c1e72
cmp ebp, ecx
jl 0x4c1b3d
mov ebp, ecx
cmp edx, eax
je 0x4c1b51
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045ef80
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 0x4c1e69
mov byte [edi + ebx], 0x5c
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x64]
jmp 0x4c1d51
mov esi, edx
mov edi, eax
jmp 0x4c176c
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jne 0x4c1c3d
mov ebp, dword [esp + 0x70]
test ebp, ebp
jne 0x4c1c21
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
cmp eax, ebx
jle 0x4c1bc5
add ebp, ebx
cmp byte [ebp], 0x2e
jne 0x4c1bc5
lea eax, [ebx + 1]
mov dword [esp + 0x7c], eax
jmp 0x4c1c3d
mov dword [esp + 0x40], eax
lea ecx, [0x60da40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00447550
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 0x4c1d3f
cmp ebp, ecx
jl 0x4c1c0d
mov ebp, ecx
cmp edx, eax
je 0x4c1c21
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045ef80
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jae 0x4c1d3a
mov byte [ebx + eax], 0x2e
inc dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
test eax, eax
je 0x4c1cb4
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
cmp ecx, ebx
ja 0x4c1d33
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x4c1d2c
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.0044acc0
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.0044aa10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x4c1cd1
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x7c]
cmp edx, ecx
jb 0x4c1d27
nop
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x63c32d]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x63c33e]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.004bf760
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.0045e670
mov ecx, ebx
call fcn.0045e690
mov edx, ebx
call fcn.0045e670
call fcn.0045e650
mov ecx, ebp
mov edx, ebx
call fcn.0045e670
inc eax
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x64]
cmp eax, ebp
jge 0x4c1b8b
jae 0x4c1e62
movzx esi, byte [eax + ebx]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
je 0x4c1b8b
xchg esi, eax
cmp al, 0x2f
xchg esi, eax
je 0x4c1b8b
mov edi, dword [esp + 0x70]
test edi, edi
jne 0x4c1e29
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 0x4c1db7
jbe 0x4c1e59
add ebp, edi
xchg esi, eax
cmp byte [ebp], al
xchg esi, eax
jne 0x4c1db7
lea ebx, [edi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x4c1d48
mov dword [esp + 0x38], ebx
lea eax, [0x60da40]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00447550
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 0x4c1e50
cmp ebp, ecx
jl 0x4c1dfb
mov ebp, ecx
cmp edx, eax
je 0x4c1e0f
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0045ef80
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 0x4c1e47
xchg esi, eax
mov byte [ebx + ebp], al
xchg esi, eax
inc dword [esp + 0x7c]
jmp 0x4c1d48
mov eax, ebp
mov ecx, edi
call fcn.0045e650
mov ecx, ebp
mov edx, ebx
call fcn.0045e670
mov eax, edi
mov ecx, ebx
call fcn.0045e650
mov ecx, ebp
call fcn.0045e650
mov eax, ebx
mov ecx, esi
call fcn.0045e650
mov ecx, ebp
mov edx, ebx
call fcn.0045e670
mov eax, esi
mov ecx, edi
call fcn.0045e650
mov ebp, ecx
mov edi, esi
mov ecx, ebx
mov ebx, eax
mov esi, edx
jmp 0x4c176c
mov eax, edi
mov ecx, ebx
call fcn.0045e650
mov ecx, ebp
mov edx, ebx
call fcn.0045e670
mov eax, ebx
mov ecx, ebp
call fcn.0045e650
mov eax, edi
mov ecx, ebx
call fcn.0045e650
mov ecx, ebp
mov edx, ebx
call fcn.0045e670
mov eax, ebx
mov ecx, ebp
call fcn.0045e650
mov eax, edi
call fcn.0045e650
mov ecx, ebp
mov edx, ebx
call fcn.0045e670
lea edi, [eax - 1]
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x7c]
cmp ecx, eax
jge 0x4c1f26
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
test edi, edi
je 0x4c1f02
cmp ebx, eax
jbe 0x4c1f38
movzx ebx, byte [edi + eax]
jmp 0x4c1f12
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebx, eax
jbe 0x4c1f31
movzx ebx, byte [edi + eax]
cmp bl, 0x5c
je 0x4c1f22
cmp bl, 0x2f
jne 0x4c1ed9
mov ebx, dword [esp + 0x64]
jmp 0x4c1f26
mov ebx, dword [esp + 0x64]
mov eax, ebx
mov ebx, ecx
mov ecx, ebp
jmp 0x4c1e84
mov ecx, ebx
call fcn.0045e650
mov ecx, ebx
call fcn.0045e650
mov eax, esi
mov ecx, ebp
call fcn.0045e650
mov eax, esi
mov ecx, ebp
call fcn.0045e650
mov eax, esi
mov ecx, ebp
call fcn.0045e650
mov ecx, ebp
call fcn.0045e650
call fcn.0045e650
mov ecx, ebp
mov edx, ebx
call fcn.0045e670
call fcn.0045e6b0
nop
call fcn.0045d190
jmp fcn.004c1540