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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, dword [esp + 0x78]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
xor ebp, ebp
push edi
cmp eax, ecx
jae 0x4ca54d
jmp 0x4ca120
push ecx
push eax
lea eax, [esp + 0x50]
push eax
call fcn.004c9910
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x4ca377.7
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x50]
jae 0x4ca542
jmp 0x4ca154
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
push edx
push ecx
lea eax, [esp + 0x64]
push eax
call fcn.004c9910
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
je case.0x4ca377.7
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push esi
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.004c9910
add esp, 0xc
test eax, eax
je case.0x4ca377.7
push esi
push eax
lea eax, [esp + 0x28]
push eax
call fcn.004c9910
add esp, 0xc
test eax, eax
je case.0x4ca377.7
cmp dword [esp + 0x44], 0
jne case.0x4ca377.7
movzx ecx, byte [esp + 0x41]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x4ca377.7
movzx edx, byte [eax + 0x4ca58c]
jmp dword [edx*4 + 0x4ca564]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
sub ecx, eax
cmp ecx, 1
je 0x4ca1eb
xor eax, eax
mov edi, eax
jmp 0x4ca2b9
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x4ca1fa
mov eax, str.FALSE
push eax
call dword [0x54ae74]
add esp, 4
mov edi, eax
jmp 0x4ca2b9
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
call fcn.004c9ae0
mov edi, eax
jmp 0x4ca2b9
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
inc eax
cmp eax, ebx
jbe 0x4ca23d
xor eax, eax
mov edi, eax
jmp 0x4ca2b9
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
call fcn.004c9a80
mov edi, eax
jmp 0x4ca2b9
push 0x53761e
call dword [0x54ae74]
add esp, 4
mov edi, eax
jmp 0x4ca2b9
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
push 1
push edx
call fcn.004c9f00
add esp, 8
mov edi, eax
jmp 0x4ca2b9
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
call fcn.004ca070
mov edi, eax
jmp 0x4ca2b9
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
push eax
call fcn.004c9f80
add esp, 4
mov edi, eax
jmp 0x4ca2b9
mov edx, dword [esp + 0x3c]
push edx
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x40]
call fcn.004c9b30
xor ecx, ecx
add esp, 8
test eax, eax
sets cl
lea edi, [ecx - 1]
and edi, dword [esp + 0x14]
test edi, edi
je case.0x4ca377.7
test ebp, ebp
je 0x4ca31a
movsx edx, byte [edi]
push edx
mov esi, edi
call fcn.004d6c52
add esp, 4
test eax, eax
je 0x4ca2e9
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.004d6c52
add esp, 4
test eax, eax
jne 0x4ca2d7
cmp byte [esi], 0
jne 0x4ca2fa
sub esi, edi
mov eax, 0x518fc8
cmp esi, 2
jle 0x4ca2ff
mov eax, 0x519ed0
mov esi, dword [esp + 0x74]
sub eax, ebp
cmp ebp, dword [esp + 0x78]
jae 0x4ca311
mov cl, byte [eax + ebp]
mov byte [esi + ebp], cl
inc ebp
cmp byte [eax + ebp], 0
jne 0x4ca305
jmp 0x4ca31e
mov esi, dword [esp + 0x74]
cmp byte [edi], 0
mov ebx, dword [esp + 0x78]
je 0x4ca341
mov eax, edi
sub eax, ebp
jmp 0x4ca330
cmp ebp, ebx
jae 0x4ca33a
mov dl, byte [eax + ebp]
mov byte [esi + ebp], dl
inc ebp
cmp byte [eax + ebp], 0
jne 0x4ca330
push edi
call dword [0x54ae6c]
add esp, 4
cmp ebp, ebx
jae 0x4ca353
mov byte [esi + ebp], 0x3d
inc ebp
cmp dword [esp + 0x30], 0
jne case.0x4ca377.7
movzx ecx, byte [esp + 0x2d]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x4ca377.7
movzx eax, byte [eax + 0x4ca5d4]
jmp dword [eax*4 + 0x4ca5ac]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
je 0x4ca394
xor eax, eax
jmp 0x4ca503
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x4ca3a3
mov eax, str.FALSE
push eax
call dword [0x54ae74]
add esp, 4
jmp 0x4ca503
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov edx, ebx
xor ecx, ecx
sub edx, eax
jne 0x4ca3c9
xor eax, eax
jmp 0x4ca503
cmp edx, 4
jbe 0x4ca3d8
call fcn.004c9a80
jmp 0x4ca503
test byte [eax], 0x80
je 0x4ca3e0
or ecx, 0xffffffff
movzx edx, byte [eax]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, ebx
jb 0x4ca3e0
mov eax, 0x5216b8
cmp ecx, 0xa
jae 0x4ca3fc
mov eax, 0x53761e
push ecx
push eax
push str._s_lx
call fcn.004a3cb0
add esp, 0xc
jmp 0x4ca503
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
inc eax
cmp eax, ebx
jbe 0x4ca42c
xor eax, eax
jmp 0x4ca503
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
call fcn.004c9a80
jmp 0x4ca503
push 0x53761e
call dword [0x54ae74]
add esp, 4
jmp 0x4ca503
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
xor edi, edi
cmp ebx, eax
jae 0x4ca4b1
push eax
push ebx
push edi
push edi
call fcn.004c9d20
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4ca4b1
lea eax, [esi + 1]
push eax
call dword [0x54ae68]
mov edi, eax
add esp, 4
test edi, edi
je 0x4ca4b1
mov ecx, dword [esp + 0x28]
push ecx
push ebx
push esi
push edi
call fcn.004c9d20
add esp, 0x10
mov byte [esi + edi], 0
call fcn.004c9a20
mov esi, eax
test esi, esi
je 0x4ca4b1
push edi
call dword [0x54ae6c]
mov edx, dword [esi + 4]
push edx
call dword [0x54ae74]
add esp, 8
mov edi, eax
mov esi, dword [esp + 0x74]
mov eax, edi
jmp 0x4ca503
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
call fcn.004ca070
jmp 0x4ca503
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
push eax
call fcn.004c9f80
mov esi, dword [esp + 0x78]
add esp, 4
jmp 0x4ca503
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x2c]
call fcn.004c9b30
xor ecx, ecx
add esp, 8
test eax, eax
sets cl
lea eax, [ecx - 1]
and eax, dword [esp + 0x18]
test eax, eax
je case.0x4ca377.7
cmp byte [eax], 0
mov ecx, eax
je 0x4ca522
mov edi, dword [esp + 0x78]
cmp ebp, edi
jae 0x4ca51b
mov dl, byte [ecx]
mov byte [esi + ebp], dl
inc ecx
inc ebp
cmp byte [ecx], 0
jne 0x4ca512
push eax
call dword [0x54ae6c]
mov eax, dword [esp + 0x54]
add esp, 4
cmp dword [esp + 0x10], eax
jb 0x4ca150
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 8]
cmp eax, ecx
jb 0x4ca120
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x60
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x60
ret