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

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x24]
push ebp
push esi
mov esi, ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0x24]
mov edx, ecx
mov eax, 1
shr edx, 2
test al, dl
push edi
mov edi, dword [ebx + 0x94]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
je 0x1019377f
mov dword [esp + 0x14], 2
mov edx, ecx
shr edx, 3
test dl, 1
je 0x10193791
mov dword [esp + 0x14], 1
mov edx, dword [esi + 0x1c]
shr ecx, 1
movzx ecx, cl
and ecx, 1
test edx, edx
mov dword [esp + 0x1c], ecx
je 0x10193951
mov ecx, dword [esi + 0x44]
sub ecx, edx
add ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x2c]
add ecx, ecx
add ecx, ecx
cmp dword [ecx + edx], 0
je 0x10193951
mov edx, dword [esi + 0x5c]
mov eax, dword [esi + 0x4c]
mov eax, dword [edx + eax*4]
mov ebp, dword [esi + 0x50]
mov edx, dword [esi + 0x68]
mov ecx, dword [ecx + ebp]
mov ebp, dword [esi + 0x34]
mov edx, dword [edx + eax*4]
cmp edx, dword [ebp + ecx*4]
je 0x1019394d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [edi + 8]
lea ebp, [edi + 8]
and ecx, 0xffffff81
or ecx, 1
mov dword [ebp], ecx
mov edx, dword [esi + 0x44]
sub edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x2c]
add edx, dword [esi + 0x40]
cmp dword [eax + edx*4], 2
mov eax, 8
je 0x10193814
mov eax, dword [esp + 0x18]
push eax
mov ecx, edi
call fcn.100ea3e0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, eax
sar ecx, 1
and ecx, 1
shl ecx, 0x10
and edx, 3
or ecx, edx
add ecx, ecx
add ecx, ecx
add ecx, ecx
and eax, 1
or ecx, eax
mov eax, dword [ebp]
shl ecx, 9
and eax, 0xefffcdff
or ecx, eax
mov dword [ebp], ecx
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x5c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + eax*4]
mov edx, dword [ebx]
push eax
mov ecx, ebx
mov dword [esp + 0x14], eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [edi + 0xc]
and eax, 0xff
add ecx, ecx
shl eax, 5
add ecx, ecx
and ecx, 0x10
or eax, ecx
shl eax, 0x10
and edx, 0x600fffe0
or eax, edx
or al, 0x1d
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x48]
add eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x60]
add eax, dword [esi + 0x4c]
mov eax, dword [ecx + eax*4]
mov edx, eax
shr edx, 3
and dl, 1
mov ecx, eax
shr ecx, 2
and cl, 1
push edx
mov edx, eax
shr edx, 1
and dl, 1
and al, 1
push ecx
mov ecx, edi
push edx
push eax
call fcn.101899a0
mov eax, dword [esi + 0x44]
sub eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x50]
add eax, dword [esi + 0x40]
mov edx, dword [ecx + eax*4]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + edx*4]
mov edx, dword [ebx]
mov dword [esp + 0x10], eax
push eax
mov ecx, ebx
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x30]
and edx, 0xffffffbf
and eax, 0xff
or edx, 0x3a0
or eax, 0x30000
mov dword [edi + 0xc], edx
mov edx, dword [edi + 0x10]
add ecx, ecx
shl eax, 5
add ecx, ecx
and edx, 0xfe7f600f
or eax, edx
and ecx, 0x10
or eax, ecx
mov dword [edi + 0x10], eax
push ebp
lea eax, [esp + 0x34]
push eax
mov ecx, ebx
call fcn.10142640
mov eax, dword [eax]
jmp 0x10193951
mov eax, dword [esp + 0x10]
test al, 1
je 0x10193cfb
mov ecx, dword [esi + 0x54]
mov edx, dword [ecx]
mov eax, dword [edi]
mov ecx, edi
mov dword [esp + 0x30], edx
call dword [eax + 4]
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x18]
lea ebp, [edi + 8]
and ecx, 0xffffff82
or ecx, 2
mov dword [ebp], ecx
push edx
mov ecx, edi
mov dword [esp + 0x24], ebp
call fcn.100ea3e0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, ecx
sar eax, 1
and eax, 1
shl eax, 0x10
and edx, 3
or eax, edx
mov edx, dword [esp + 0x30]
add eax, eax
add eax, eax
and ecx, 1
add eax, eax
or eax, ecx
mov ecx, dword [ebp]
and ecx, 0xefffcdff
shl eax, 9
or eax, ecx
mov dword [ebp], eax
movzx ecx, byte [esi + 0x99]
shl ecx, 0x14
xor ecx, eax
and ecx, 0x100000
xor ecx, eax
mov eax, edx
shr edx, 2
and eax, 3
and edx, 3
cmp eax, edx
mov dword [ebp], ecx
jne 0x10193a45
mov edx, dword [esp + 0x30]
shr edx, 4
and edx, 3
cmp eax, edx
jne 0x10193a45
mov edx, dword [esp + 0x30]
shr edx, 6
and edx, 3
cmp eax, edx
jne 0x10193a45
cmp eax, 3
ja case.default.0x10193a06
jmp dword [eax*4 + 0x10193d10]
and ecx, 0xfff2ffff
or ecx, 0x20000
jmp 0x10193a51
and ecx, 0xfff3ffff
or ecx, 0x30000
jmp 0x10193a51
and ecx, 0xfff4ffff
or ecx, 0x40000
jmp 0x10193a51
and ecx, 0xfff5ffff
or ecx, 0x50000
jmp 0x10193a51
and ecx, 0xfff1ffff
or ecx, 0x10000
mov dword [ebp], ecx
mov eax, dword [esi + 0x50]
mov ecx, dword [eax]
mov edx, dword [esi + 0x34]
mov eax, dword [edx + ecx*4]
sub eax, 0
je 0x10193a6f
sub eax, 1
jne 0x10193a73
or byte [edi + 0x13], 2
jmp 0x10193a73
and byte [edi + 0x13], 0xfd
cmp dword [esi + 0x74], 0
je 0x10193aa7
mov eax, dword [esi + 0x78]
mov edx, dword [ebx]
push eax
mov ecx, ebx
mov dword [esp + 0x14], eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
push edx
push ecx
push eax
push 2
jmp 0x10193adf
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax + edx*4]
mov edx, dword [esi + 0x68]
mov eax, dword [edx + ecx*4]
mov edx, dword [ebx]
push eax
mov ecx, ebx
mov dword [esp + 0x14], eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
push edx
push ecx
push eax
push 1
mov ecx, edi
call fcn.10142680
movzx edx, byte [esi + 0xa2]
mov eax, dword [ebp]
and eax, 0x7fffffff
shl edx, 0x1f
or edx, eax
mov dword [ebp], edx
mov ebp, dword [esi + 0x4c]
mov ecx, dword [esi + 0x64]
mov eax, dword [ecx + ebp*4]
mov ecx, dword [ecx + ebp*4]
mov edx, dword [esi + 0x60]
and ecx, dword [edx + ebp*4]
and eax, dword [edx + ebp*4]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 0x64]
mov ecx, dword [ecx + ebp*4]
and ecx, dword [edx + ebp*4]
shr eax, 3
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x64]
mov ecx, dword [ecx + ebp*4]
and ecx, dword [edx + ebp*4]
mov edx, dword [esp + 0x30]
and eax, 1
add eax, eax
shr edx, 2
and edx, 1
or eax, edx
mov edx, dword [esp + 0x1c]
add eax, eax
shr edx, 1
and edx, 1
or eax, edx
and ecx, 1
add eax, eax
or eax, ecx
mov ecx, dword [edi + 0xc]
and ecx, 0xfff0ffff
shl eax, 0x10
or eax, ecx
mov dword [edi + 0xc], eax
mov edx, dword [esi + 0x44]
mov eax, dword [esi + 0x50]
mov ecx, dword [eax + edx*4]
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + ecx*4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov dword [esp + 0x30], ecx
push ebp
mov ecx, ebx
call dword [edx + 0x1c]
add eax, dword [esp + 0x30]
push ebp
mov dword [esp + 0x34], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
movzx ecx, byte [esi + 0x9a]
mov ebp, dword [edi + 0xc]
shl ecx, 0xe
xor ecx, dword [edi + 0x10]
and ebp, 0xfffffc3f
and ecx, 0x4000
xor dword [edi + 0x10], ecx
mov cl, byte [esi + 0x9e]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
and edx, 7
mov dword [esp + 0x18], edx
shl edx, 7
and ecx, 1
or ch, 3
or ebp, edx
or ebp, 0x20
mov dword [edi + 0xc], ebp
shl ecx, 8
and eax, 0xff
or ecx, eax
mov eax, dword [esp + 0x1c]
shl ecx, 5
and eax, 0xfe7f401f
or ecx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
mov dword [edi + 0x10], ecx
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call fcn.100ea390
mov ecx, dword [esp + 0x24]
xor eax, ecx
and eax, 0x10
xor eax, ecx
mov dword [edi + 0x10], eax
mov edx, dword [esi + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + edx*4]
mov edx, ecx
shr edx, 6
and edx, 3
mov eax, dword [edx*4 + 0x10214474]
mov edx, ecx
shr edx, 4
and edx, 3
mov edx, dword [edx*4 + 0x10214474]
mov dword [esp + 0x34], edx
mov edx, ecx
and ecx, 3
mov ecx, dword [ecx*4 + 0x10214474]
and eax, 3
add eax, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x34]
add eax, eax
shr edx, 2
and ecx, 3
or eax, ecx
mov ecx, dword [esp + 0x38]
and edx, 3
mov edx, dword [edx*4 + 0x10214474]
shl eax, 0xe
and edx, 3
or eax, edx
add eax, eax
and ecx, 3
add eax, eax
or eax, ecx
mov ecx, dword [esp + 0x24]
and ecx, 0xfff0fff0
or eax, ecx
mov dword [edi + 0x10], eax
mov edx, dword [esi + 0x3c]
add esp, 8
cmp byte [edx], 0
je 0x10193cac
and eax, 0xfe1fffff
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [eax]
mov eax, dword [esp + 0x18]
shl eax, 0xc
and ebp, 0xffff8fff
or eax, ebp
or ah, 0xc
mov dword [edi + 0x14], ecx
mov dword [edi + 0xc], eax
cmp dword [ebx + 0x1c], 0
je 0x10193cf6
mov edx, dword [esp + 0x20]
push 0x10
push edx
lea eax, [esp + 0x34]
push eax
mov ecx, ebx
call fcn.100fd200
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
mov dword [ecx], eax
mov eax, ecx
pop ebx
add esp, 0x14
ret 0xc
mov eax, 2
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
mov dword [ecx], eax
mov eax, ecx
pop ebx
add esp, 0x14
ret 0xc