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

Disassembly:
sub esp, 0xac
mov eax, dword [0x101366b4]
xor eax, esp
mov dword [esp + 0xa8], eax
push ebx
mov ebx, dword [esp + 0xc0]
xor eax, eax
push ebp
mov ebp, dword [esp + 0xc8]
push esi
mov esi, dword [esp + 0xc0]
push edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov word [esi], ax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
mov dword [esp + 0x38], esi
push eax
push ebx
push edi
mov dword [esp + 0x40], ebp
call fcn.1010e5a0
xor ecx, ecx
inc ecx
cmp ax, cx
jne 0x101133aa
cmp dword [esp + 0x14], 8
jne 0x101133aa
mov eax, dword [esp + 0x10]
push 8
lea eax, [edi + eax*2]
push eax
push dword [0x10136280]
call fcn.1011cfbf
add esp, 0xc
test eax, eax
jne 0x101133a7
mov ecx, dword [esp + 0x10]
sub ebx, ecx
mov edx, dword [esp + 0x14]
sub ebx, edx
mov dword [esp + 0x24], ebx
lea eax, [ecx + edx]
lea edi, [edi + eax*2]
lea eax, [esp + 0x14]
mov dword [esp + 0x1c], edi
push eax
lea eax, [esp + 0x14]
push eax
push ebx
push edi
call fcn.1010e5a0
movzx eax, ax
push 3
pop edx
test ax, ax
je 0x10112f88
xor ebp, ebp
inc ebp
cmp ax, bp
jne 0x10112f51
mov eax, dword [esp + 0x14]
sub eax, edx
je 0x10112f31
dec eax
je 0x10112ee9
dec eax
je 0x10112ebe
dec eax
jne 0x10112f51
mov eax, dword [esp + 0x10]
push 6
lea eax, [edi + eax*2]
push eax
push 0x10012450
call fcn.1011cfbf
add esp, 0xc
test eax, eax
jne 0x10112e69
movzx eax, word [esi]
test ax, ax
jne 0x10112e53
push 0x11
jmp 0x10112f4d
push 0xf
pop ecx
cmp ax, cx
jne 0x10112e62
push 0x15
jmp 0x10112f4d
push 0x17
jmp 0x10112f4d
mov eax, dword [esp + 0x10]
push dword [esp + 0x14]
lea eax, [edi + eax*2]
push eax
push 0x10012460
call fcn.1011cfbf
add esp, 0xc
test eax, eax
jne 0x10112f51
movzx eax, word [esi]
test ax, ax
jne 0x10112e99
push 0x12
jmp 0x10112f4d
push 0xf
pop ecx
cmp ax, cx
jne 0x10112ea8
push 0x16
jmp 0x10112f4d
push 0x10
pop ecx
cmp ax, cx
jne 0x10112eb7
push 0x18
jmp 0x10112f4d
push 0x19
jmp 0x10112f4d
mov eax, dword [esp + 0x10]
push 5
lea eax, [edi + eax*2]
push eax
push 0x10012444
call fcn.1011cfbf
add esp, 0xc
test eax, eax
jne 0x10112f51
push 0x13
pop eax
xor edx, edx
cmp word [esi], dx
push 0xe
pop ecx
cmove eax, ecx
jmp 0x10112f4e
mov eax, dword [esp + 0x10]
push 4
lea eax, [edi + eax*2]
push eax
push 0x1001242c
call fcn.1011cfbf
add esp, 0xc
test eax, eax
jne 0x10112f08
push 0xd
jmp 0x10112f4d
mov eax, dword [esp + 0x10]
push dword [esp + 0x14]
lea eax, [edi + eax*2]
push eax
push 0x10012438
call fcn.1011cfbf
add esp, 0xc
test eax, eax
jne 0x10112f51
push 0x14
pop eax
xor ecx, ecx
cmp word [esi], cx
push 0x10
jmp 0x10112ee3
mov eax, dword [esp + 0x10]
push edx
lea eax, [edi + eax*2]
push eax
push 0x10012424
call fcn.1011cfbf
add esp, 0xc
test eax, eax
jne 0x10112f51
push 0xf
pop eax
mov word [esi], ax
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea eax, [edx + ecx]
lea edi, [edi + eax*2]
lea eax, [edx + ecx]
sub ebx, eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
push ebx
push edi
call fcn.1010e5a0
movzx eax, ax
push 3
pop edx
test ax, ax
jne 0x10112dff
mov ebp, dword [esp + 0x30]
movsx ecx, word [esi]
add ecx, 0xfffffff3
cmp ecx, 0xc
ja case.default.0x10112f9e
movzx eax, byte [ecx + 0x101133d9]
jmp dword [eax*4 + 0x101133c9]
lea eax, [ebp + 8]
jmp 0x10112fb7
lea eax, [ebp + 0xc]
jmp 0x10112fb7
lea eax, [ebp + 0x10]
jmp 0x10112fb7
lea eax, [ebp + 0x14]
push dword [ecx*4 + 0x10136548]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
lea eax, [ebp + 0x1c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x7c]
push 0x40
push eax
call fcn.100265a0
cmp byte [esp + 0x78], 0
lea edi, [esp + 0x78]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
je 0x10113285
mov esi, dword [esp + 0x1c]
lea eax, [edx + ebx]
lea esi, [esi + eax*2]
lea eax, [edx + ebx]
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x24]
sub ebx, eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
mov dword [esp + 0x28], ebx
push eax
push ebx
push esi
call fcn.1010e5a0
cmp byte [edi], 0xc
mov edx, dword [esp + 0x10]
movzx ecx, ax
jne 0x101130c9
movzx esi, word [esi + edx*2]
movzx eax, byte [edi + 1]
cmp si, ax
jne 0x101130af
cmp esi, 0x2d
jne 0x10113051
xor eax, eax
inc eax
mov word [ebp + 4], ax
jmp 0x10113079
cmp esi, 0x28
jne 0x1011305f
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
jmp 0x10113079
cmp esi, 0x2e
jne 0x1011306d
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
jmp 0x10113079
cmp esi, 0x2c
jne 0x10113079
lea eax, [ebp + 0x1e]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
push 3
pop eax
add edi, eax
lea eax, [edx + ecx]
lea esi, [esi + eax*2]
lea eax, [edx + ecx]
mov dword [esp + 0x1c], esi
sub ebx, eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
push ebx
push esi
call fcn.1010e5a0
mov edx, dword [esp + 0x10]
movzx ecx, ax
jmp 0x101130bc
movzx eax, byte [edi + 2]
add edi, 2
mov esi, dword [esp + 0x1c]
add edi, eax
cmp byte [edi], 0xc
je 0x10113036
mov dword [esp + 0x24], ebx
test cx, cx
je 0x1011327d
xor eax, eax
inc eax
cmp cx, ax
jne 0x101130ee
cmp word [esi + edx*2], 0x27
jne 0x101130ee
mov ebx, eax
push 3
pop eax
mov dword [esp + 0x14], ebx
mov ecx, eax
jmp 0x101130f2
mov ebx, dword [esp + 0x14]
movzx eax, byte [edi]
inc edi
cmp ax, cx
je 0x10113111
cmp byte [edi - 1], 1
jne case.default.0x10112f9e
push 2
pop eax
cmp cx, ax
je 0x10113114
xor eax, eax
inc eax
jmp 0x101133ad
push 2
pop eax
cmp cx, ax
jne 0x101131b8
mov cl, byte [edi]
test cl, cl
jle 0x1011312c
movzx eax, cl
cmp ebx, eax
jne case.default.0x10112f9e
test cl, cl
jns 0x1011313a
movsx ecx, cl
neg ecx
movsx eax, bl
cmp eax, ecx
jg case.default.0x10112f9e
push 0x1e
pop eax
cmp ebx, eax
cmovg ebx, eax
mov eax, dword [esp + 0x1c]
lea esi, [ebx + ebx]
lea eax, [eax + edx*2]
push esi
push eax
lea eax, [esp + 0x44]
push eax
call fcn.101180b0
xor eax, eax
mov word [esp + esi + 0x48], ax
lea eax, [esp + 0x48]
push eax
call fcn.1011cb69
mov ebx, dword [esp + 0x24]
add esp, 0x10
cmp dword [esp + 0x28], 0
je 0x1011318c
mov ecx, ebx
mov edx, 0x101361d8
shl ecx, 2
sub edx, ecx
imul eax, dword [edx]
xor ecx, ecx
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x2c], 0
je 0x101131a5
mov ecx, dword [esp + 0x20]
push 2
mov word [ecx], ax
pop eax
add ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x101131b2
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x18], ecx
inc edi
jmp 0x10113266
push 3
pop eax
cmp cx, ax
jne 0x101131e5
movzx ecx, word [esi + edx*2]
movzx eax, byte [edi]
cmp cx, ax
jne case.default.0x10112f9e
inc edi
cmp ecx, 0x29
jne 0x1011326a
xor eax, eax
mov dword [esp + 0x2c], eax
jmp 0x1011326a
xor eax, eax
inc eax
cmp cx, ax
jne 0x1011326a
movzx eax, byte [edi]
cmp ebx, eax
jne case.default.0x10112f9e
push 0x1e
pop eax
push eax
lea eax, [esp + 0x40]
push eax
push ebx
lea eax, [edi + 1]
xor ebx, ebx
push eax
inc ebx
xor eax, eax
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [esp + 0x10]
push dword [esp + 0x14]
lea eax, [esi + eax*2]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.1011cfbf
add esp, 0xc
test eax, eax
jne 0x10113275
mov ebx, dword [esp + 0x14]
push 2
pop eax
cmp ebx, eax
jne 0x10113260
push eax
mov eax, dword [esp + 0x14]
lea eax, [esi + eax*2]
push eax
push 0x10012470
call fcn.1011cfbf
mov ebx, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x10113260
lea eax, [ebp + 0x1e]
mov dword [esp + 0x20], eax
movzx eax, byte [edi]
inc edi
add edi, eax
mov edx, dword [esp + 0x10]
cmp byte [edi], 0
jne 0x10112ffa
jmp 0x10113281
mov ax, bx
jmp 0x101133ad
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + ebx]
lea edi, [ecx + eax*2]
lea eax, [edx + ebx]
mov ebx, dword [esp + 0x24]
sub ebx, eax
je 0x101132bc
push 2
pop ebp
movzx eax, word [edi]
push eax
call fcn.1011cd56
pop ecx
test eax, eax
je 0x101132b0
add edi, ebp
dec ebx
jne 0x1011329d
mov ebp, dword [esp + 0x30]
test ebx, ebx
jne case.default.0x10112f9e
movzx eax, word [ebp + 0x1c]
push 9
pop edx
cmp ax, dx
jg case.default.0x10112f9e
movsx ecx, ax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
cmp eax, dword [ecx*4 + 0x101361b4]
jae case.default.0x10112f9e
movzx eax, word [esi]
push 0x13
pop ecx
cmp ax, cx
jne 0x101132f7
cmp dword [ebp + 0xc], 0xb
ja case.default.0x10112f9e
push 0x14
pop ecx
cmp ax, cx
je 0x10113371
push 0x15
pop ebx
push 0x16
pop ecx
cmp ax, bx
je 0x10113377
cmp ax, cx
je 0x10113377
push 0x17
pop esi
push 0x18
cmp ax, bx
pop ebx
je 0x10113329
cmp ax, cx
je 0x10113329
cmp ax, si
je 0x10113329
cmp ax, bx
jne 0x10113333
cmp dword [ebp + 0x10], 0x3b
ja case.default.0x10112f9e
cmp ax, cx
je 0x10113345
cmp ax, bx
je 0x10113345
push 0x19
pop esi
cmp ax, si
jne 0x1011334f
cmp dword [ebp + 0x14], 0x3b
ja case.default.0x10112f9e
xor esi, esi
cwde
inc esi
cmp eax, 0x12
je 0x10113363
cmp eax, ecx
je 0x10113363
add eax, 0xffffffe8
cmp eax, esi
ja 0x101133a3
movzx eax, word [ebp + 0x1e]
cmp ax, dx
jle 0x10113384
mov ax, si
jmp 0x101133ad
push 0x16
pop ecx
push 0x15
pop ebx
push 0x17
pop esi
cmp dword [ebp + 0xc], esi
jbe 0x10113312
jmp case.default.0x10112f9e
mov ecx, dword [ebp + 0x18]
mov ebx, 0x101361d8
cwde
xor edx, edx
shl eax, 2
sub ebx, eax
mov eax, ecx
div dword [ebx]
test edx, edx
je 0x101133a3
sub ecx, edx
mov dword [ebp + 0x18], ecx
jmp 0x1011336c
xor eax, eax
jmp 0x101133ad
xor ecx, ecx
inc ecx
mov ax, cx
mov ecx, dword [esp + 0xb8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10117cfd
add esp, 0xac
ret 0x14