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

Disassembly:
sub esp, 0x18c
mov eax, dword [0x1023904c]
xor eax, esp
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x1a0]
push ebx
push ebp
mov ebp, dword [esp + 0x19c]
push esi
mov esi, dword [esp + 0x19c]
push edi
mov edi, dword [esp + 0x1ac]
xor ebx, ebx
push ebx
push dword [edi + 0x3c]
mov dword [esp + 0x34], ebp
push esi
mov dword [esp + 0x2c], eax
call fcn.101c5943
test eax, eax
js 0x101c5d33
push 4
lea eax, [esp + 0x28]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
cmp dword [esp + 0x24], 0x4550
jne 0x101c5dea
mov ecx, ebp
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101c5c98
push 0x80
lea eax, [esp + 0x98]
push eax
sub ecx, edx
lea eax, [ecx + 1]
push eax
push ebp
push ebx
push ebx
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
lea eax, [esp + 0x94]
mov dword [0x10243680], eax
mov eax, dword [esp + 0x1a8]
mov dword [0x1024368c], eax
push 0x14
lea eax, [esp + 0x44]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
movzx eax, word [esp + 0x50]
push 1
push eax
push esi
call fcn.101c5943
test eax, eax
js 0x101c5d33
xor eax, eax
mov edi, ebx
cmp ax, word [esp + 0x42]
je 0x101c5d2e
push 0x28
lea eax, [esp + 0x58]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
push 0x1014d648
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.kernel32.dll_lstrcmpiA]
test eax, eax
je 0x101c5d4e
inc edi
cmp di, word [esp + 0x42]
jne 0x101c5d01
mov eax, 0x80029c4a
mov ecx, dword [esp + 0x198]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10001e57
add esp, 0x18c
ret 0x14
mov ebp, dword [esp + 0x68]
lea eax, [esp + 0x14]
push eax
push dword [0x10243684]
push dword [0x10243680]
push ebp
push esi
call fcn.101c59b3
test eax, eax
js 0x101c5d33
mov edi, ebx
mov eax, dword [esp + 0x18]
mov ecx, eax
and eax, 0x7fffffff
shr ecx, 0x1f
add eax, ebp
cmp edi, 0x10
je 0x101c5daa
test ecx, ecx
je 0x101c5d2e
lea ecx, [esp + 0x14]
push ecx
push dword [edi + 0x1024368c]
add edi, 8
push dword [edi + 0x10243680]
push eax
push esi
call fcn.101c59b3
test eax, eax
js 0x101c5d33
jmp 0x101c5d70
test ecx, ecx
jne 0x101c5d2e
push ebx
push eax
push esi
call fcn.101c5943
test eax, eax
js 0x101c5d33
push 0x10
lea eax, [esp + 0x34]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x60]
add eax, ebp
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
xor eax, eax
jmp 0x101c5d33
mov eax, 0x454e
cmp word [esp + 0x24], ax
jne 0x101c5d2e
mov ecx, ebp
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101c5dff
sub ecx, edx
push ecx
call fcn.1015692e
mov byte [esp + 0x13], al
push 0x3c
lea eax, [esp + 0x5c]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
mov ax, word [esp + 0x78]
cmp ax, word [esp + 0x7a]
je 0x101c5d2e
movzx ebp, ax
add ebp, dword [edi + 0x3c]
push ebx
push ebp
push esi
call fcn.101c5943
test eax, eax
js 0x101c5d33
push 2
lea eax, [esp + 0x20]
push eax
push esi
call fcn.101c5967
jmp 0x101c5f58
cmp word [esp + 0x14], bx
je 0x101c5d2e
push 2
lea eax, [esp + 0x1a]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
push 4
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
test dword [esp + 0x14], 0x8000
jne 0x101c5f47
lea eax, [esp + 0x28]
push eax
push esi
call fcn.101c598b
test eax, eax
js 0x101c5d33
movzx eax, word [esp + 0x14]
push ebx
add eax, ebp
push eax
push esi
call fcn.101c5943
test eax, eax
js 0x101c5d33
push 1
lea eax, [esp + 0x16]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
mov al, byte [esp + 0x13]
cmp byte [esp + 0x12], al
jne 0x101c5f14
movsx edi, al
push edi
lea eax, [esp + 0x98]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
cmp edi, 0x81
jae 0x101c5f7a
mov byte [esp + edi + 0x94], bl
push ebx
push dword [esp + 0x2c]
push esi
call fcn.101c5943
test eax, eax
js 0x101c5d33
mov al, byte [esp + 0x13]
cmp byte [esp + 0x12], al
jne 0x101c5f47
push dword [esp + 0x2c]
lea eax, [esp + 0x98]
push eax
call dword [sym.imp.kernel32.dll_lstrcmpiA]
test eax, eax
je 0x101c5f7f
movzx eax, word [esp + 0x16]
imul eax, eax, 0xc
push 1
push eax
push esi
call fcn.101c5943
test eax, eax
js 0x101c5d33
push 2
lea eax, [esp + 0x18]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
jmp 0x101c5e5f
call fcn.1015692e
xor eax, eax
cmp ax, word [esp + 0x16]
jae 0x101c5d2e
push 0xc
lea eax, [esp + 0x34]
push eax
push esi
call fcn.101c5967
test eax, eax
js 0x101c5d33
mov ecx, dword [esp + 0x1a8]
movzx eax, word [esp + 0x36]
or ecx, 0x8000
cmp eax, ecx
je 0x101c5fc5
inc ebx
cmp bx, word [esp + 0x16]
jae 0x101c5d2e
jmp 0x101c5f8c
movzx eax, word [esp + 0x30]
movzx ecx, word [esp + 0x1c]
shl eax, cl
jmp 0x101c5ddd