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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x80]
mov esi, dword [edi + 4]
mov eax, dword [edi + 8]
xor ebp, ebp
cmp esi, eax
jae 0x1004d532
mov edi, edi
push eax
lea eax, [esp + 0x50]
push esi
push eax
call fcn.1004c990
mov edx, dword [esp + 0x60]
mov esi, eax
mov eax, dword [esp + 0x5c]
add esp, 0xc
mov dword [esp + 0x20], esi
mov ecx, eax
cmp eax, edx
jae 0x1004d527
push edx
push ecx
lea ecx, [esp + 0x68]
push ecx
call fcn.1004c990
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
push esi
mov dword [esp + 0x2c], eax
push edx
lea eax, [esp + 0x38]
push eax
call fcn.1004c990
push esi
push eax
lea ecx, [esp + 0x58]
push ecx
call fcn.1004c990
add esp, 0x24
cmp dword [esp + 0x34], 0
jne case.0x1004d35a.7
movzx ecx, byte [esp + 0x31]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x1004d35a.7
movzx edx, byte [eax + 0x1004d570]
jmp dword [edx*4 + 0x1004d548]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
sub ecx, eax
cmp ecx, 1
je 0x1004d1cc
xor eax, eax
mov edi, eax
jmp 0x1004d29a
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x1004d1db
mov eax, str.FALSE
push eax
call dword [0x10088c2c]
add esp, 4
mov edi, eax
jmp 0x1004d29a
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.1004cb60
mov edi, eax
jmp 0x1004d29a
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
inc eax
cmp eax, ebx
jbe 0x1004d21e
xor eax, eax
mov edi, eax
jmp 0x1004d29a
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.1004cb00
mov edi, eax
jmp 0x1004d29a
push 0x100784a1
call dword [0x10088c2c]
add esp, 4
mov edi, eax
jmp 0x1004d29a
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
push 1
push edx
call fcn.1004cef0
add esp, 8
mov edi, eax
jmp 0x1004d29a
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
call fcn.1004d080
mov edi, eax
jmp 0x1004d29a
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push eax
call fcn.1004cf70
add esp, 4
mov edi, eax
jmp 0x1004d29a
mov edx, dword [esp + 0x2c]
push edx
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x30]
call fcn.1004cbb0
xor ecx, ecx
add esp, 8
test eax, eax
setl cl
dec ecx
and ecx, dword [esp + 0x10]
mov edi, ecx
test edi, edi
je case.0x1004d35a.7
test ebp, ebp
je 0x1004d2fa
movsx edx, byte [edi]
push edx
mov esi, edi
call fcn.1005509c
add esp, 4
test eax, eax
je 0x1004d2ca
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.1005509c
add esp, 4
test eax, eax
jne 0x1004d2b8
cmp byte [esi], 0
jne 0x1004d2db
sub esi, edi
cmp esi, 2
mov eax, 0x10078818
jle 0x1004d2e0
mov eax, 0x100788a4
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
cmp ebp, ebx
jae 0x1004d2f1
mov cl, byte [eax]
mov byte [esi + ebp], cl
inc eax
inc ebp
cmp byte [eax], 0
jne 0x1004d2e8
jmp 0x1004d302
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
cmp byte [edi], 0
mov eax, edi
je 0x1004d320
lea esp, [esp]
cmp ebp, ebx
jae 0x1004d319
mov dl, byte [eax]
mov byte [esi + ebp], dl
inc eax
inc ebp
cmp byte [eax], 0
jne 0x1004d310
push edi
call dword [0x10088c24]
add esp, 4
cmp ebp, ebx
jae 0x1004d332
mov byte [esi + ebp], 0x3d
inc ebp
cmp dword [esp + 0x48], 0
mov dword [esp + 0x14], ebp
jne case.0x1004d35a.7
movzx ecx, byte [esp + 0x45]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x1004d35a.7
movzx eax, byte [eax + 0x1004d5b8]
jmp dword [eax*4 + 0x1004d590]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
sub ecx, eax
cmp ecx, 1
je 0x1004d377
xor eax, eax
jmp 0x1004d4df
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x1004d386
mov eax, str.FALSE
push eax
call dword [0x10088c2c]
add esp, 4
jmp 0x1004d4df
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edx, ebx
xor ecx, ecx
sub edx, eax
jne 0x1004d3ac
xor eax, eax
jmp 0x1004d4df
cmp edx, 4
jbe 0x1004d3bb
call fcn.1004cb00
jmp 0x1004d4df
test byte [eax], 0x80
je 0x1004d3c3
or ecx, 0xffffffff
movzx edx, byte [eax]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, ebx
jb 0x1004d3c3
mov eax, 0x100784a1
cmp ecx, 9
jbe 0x1004d3df
mov eax, 0x1007fe50
push ecx
push eax
push str._s_lx
call fcn.1002e240
add esp, 0xc
jmp 0x1004d4df
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
inc eax
cmp eax, ebx
jbe 0x1004d40f
xor eax, eax
jmp 0x1004d4df
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
call fcn.1004cb00
jmp 0x1004d4df
push 0x100784a1
call dword [0x10088c2c]
add esp, 4
jmp 0x1004d4df
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
xor edi, edi
cmp ebx, ebp
jae 0x1004d491
push ebp
push ebx
push 0xffffffffffffffff
push edi
call fcn.1004cdb0
mov esi, eax
add esp, 0x10
test esi, esi
jl 0x1004d491
lea eax, [esi + 1]
push eax
call dword [0x10088c20]
mov edi, eax
add esp, 4
test edi, edi
je 0x1004d491
push ebp
push ebx
push esi
push edi
call fcn.1004cdb0
add esp, 0x10
mov byte [esi + edi], 0
call fcn.1004caa0
mov esi, eax
test esi, esi
je 0x1004d491
push edi
call dword [0x10088c24]
mov ecx, dword [esi + 4]
push ecx
call dword [0x10088c2c]
add esp, 8
mov edi, eax
mov ebp, dword [esp + 0x14]
mov eax, edi
jmp 0x1004d4df
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.1004d080
jmp 0x1004d4df
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push edx
call fcn.1004cf70
add esp, 4
jmp 0x1004d4df
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x1c]
push edx
call fcn.1004cbb0
xor ecx, ecx
add esp, 8
test eax, eax
setl cl
dec ecx
and ecx, dword [esp + 0x18]
mov eax, ecx
test eax, eax
je case.0x1004d35a.7
cmp byte [eax], 0
mov ecx, eax
je 0x1004d502
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
cmp ebp, edi
jae 0x1004d4fb
mov dl, byte [ecx]
mov byte [esi + ebp], dl
inc ecx
inc ebp
cmp byte [ecx], 0
jne 0x1004d4f2
push eax
call dword [0x10088c24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x58]
add esp, 4
cmp ecx, edx
jb 0x1004d157
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x80]
mov eax, dword [edi + 8]
cmp esi, eax
jb 0x1004d130
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x64
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x64
ret