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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, dword [esp + 0x78]
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
xor ebp, ebp
push edi
cmp ecx, eax
jae 0x100473e3
jmp 0x10047050
push eax
push ecx
lea eax, [esp + 0x50]
push eax
call fcn.10046890
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
je case.0x100472a3.7
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
jae 0x100473c8
jmp 0x10047084
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
push ecx
push eax
lea edx, [esp + 0x64]
push edx
call fcn.10046890
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
je case.0x100472a3.7
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
push edi
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.10046890
add esp, 0xc
test eax, eax
je case.0x100472a3.7
push edi
push eax
lea edx, [esp + 0x3c]
push edx
call fcn.10046890
add esp, 0xc
test eax, eax
je case.0x100472a3.7
cmp dword [esp + 0x30], 0
jne case.0x100472a3.7
movzx ecx, byte [esp + 0x2d]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x100472a3.7
movzx eax, byte [eax + 0x10047418]
jmp dword [eax*4 + 0x100473f0]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
sub ecx, eax
cmp ecx, 1
je 0x1004711b
xor eax, eax
mov edi, eax
jmp 0x100471e9
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x1004712a
mov eax, str.FALSE
push eax
call dword [0x1007b00c]
add esp, 4
mov edi, eax
jmp 0x100471e9
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
call fcn.10046a60
mov edi, eax
jmp 0x100471e9
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
inc eax
cmp eax, ebx
jbe 0x1004716d
xor eax, eax
mov edi, eax
jmp 0x100471e9
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
call fcn.10046a00
mov edi, eax
jmp 0x100471e9
push 0x1007728b
call dword [0x1007b00c]
add esp, 4
mov edi, eax
jmp 0x100471e9
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
push 1
push edx
call fcn.10046e10
add esp, 8
mov edi, eax
jmp 0x100471e9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
call fcn.10046fa0
mov edi, eax
jmp 0x100471e9
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
push eax
call fcn.10046e90
add esp, 4
mov edi, eax
jmp 0x100471e9
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x2c]
call fcn.10046ab0
xor ecx, ecx
add esp, 8
test eax, eax
setl cl
dec ecx
and ecx, dword [esp + 0x18]
mov edi, ecx
test edi, edi
je case.0x100472a3.7
test ebp, ebp
je 0x1004724a
movsx edx, byte [edi]
push edx
mov esi, edi
call fcn.1004d795
add esp, 4
test eax, eax
je 0x10047219
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.1004d795
add esp, 4
test eax, eax
jne 0x10047207
cmp byte [esi], 0
jne 0x1004722a
sub esi, edi
cmp esi, 2
mov eax, 0x10069654
jle 0x10047230
mov eax, 0x100772a4
nop
mov ebx, dword [esp + 0x78]
cmp ebp, ebx
jae 0x10047241
mov cl, byte [eax]
mov edx, dword [esp + 0x74]
mov byte [edx + ebp], cl
inc eax
inc ebp
cmp byte [eax], 0
jne 0x10047230
jmp 0x1004724e
mov ebx, dword [esp + 0x78]
cmp byte [edi], 0
mov eax, edi
je 0x10047269
cmp ebp, ebx
jae 0x10047262
mov cl, byte [eax]
mov edx, dword [esp + 0x74]
mov byte [edx + ebp], cl
inc eax
inc ebp
cmp byte [eax], 0
jne 0x10047255
push edi
call dword [0x1007b004]
mov esi, dword [esp + 0x78]
add esp, 4
cmp ebp, ebx
jae 0x1004727f
mov byte [esi + ebp], 0x3d
inc ebp
cmp dword [esp + 0x44], 0
jne case.0x100472a3.7
movzx ecx, byte [esp + 0x41]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x100472a3.7
movzx eax, byte [eax + 0x10047460]
jmp dword [eax*4 + 0x10047438]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
sub ecx, eax
cmp ecx, 1
je 0x100472c0
xor eax, eax
jmp 0x1004738d
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x100472cf
mov eax, str.FALSE
push eax
call dword [0x1007b00c]
add esp, 4
jmp 0x1004738d
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
call fcn.10046a60
jmp 0x1004738d
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
inc eax
cmp eax, ebx
jbe 0x10047310
mov ebx, dword [esp + 0x78]
xor eax, eax
jmp 0x1004738d
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
call fcn.10046a00
mov ebx, dword [esp + 0x78]
jmp 0x1004738d
push 0x1007728b
call dword [0x1007b00c]
add esp, 4
jmp 0x1004738d
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
push 1
push edx
call fcn.10046e10
mov ebx, dword [esp + 0x80]
add esp, 8
jmp 0x1004738d
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
call fcn.10046fa0
jmp 0x1004738d
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
push eax
call fcn.10046e90
add esp, 4
jmp 0x1004738d
mov edx, dword [esp + 0x3c]
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x40]
call fcn.10046ab0
xor ecx, ecx
add esp, 8
test eax, eax
setl cl
dec ecx
and ecx, dword [esp + 0x1c]
mov eax, ecx
test eax, eax
je case.0x100472a3.7
cmp byte [eax], 0
mov ecx, eax
je 0x100473a8
cmp ebp, ebx
jae 0x100473a1
mov dl, byte [ecx]
mov byte [esi + ebp], dl
inc ecx
inc ebp
cmp byte [ecx], 0
jne 0x10047398
push eax
call dword [0x1007b004]
mov eax, dword [esp + 0x54]
add esp, 4
cmp dword [esp + 0x10], eax
jb 0x10047080
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 8]
cmp ecx, eax
jae 0x100473e3
mov ecx, dword [esp + 0x14]
jmp 0x10047050
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x60
ret
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x60
ret