Function at 0x10193050
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 0x1019308f
mov dword [esp + 0x14], 2
mov edx, ecx
shr edx, 3
test dl, 1
je 0x101930a1
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 0x10193261
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 0x10193261
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 0x1019325d
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 0x10193124
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 0x10193261
mov eax, dword [esp + 0x10]
test al, 1
je 0x1019371d
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 0x10193355
mov edx, dword [esp + 0x30]
shr edx, 4
and edx, 3
cmp eax, edx
jne 0x10193355
mov edx, dword [esp + 0x30]
shr edx, 6
and edx, 3
cmp eax, edx
jne 0x10193355
cmp eax, 3
ja case.default.0x10193316
jmp dword [eax*4 + 0x10193730]
and ecx, 0xfff2ffff
or ecx, 0x20000
jmp 0x10193361
and ecx, 0xfff3ffff
or ecx, 0x30000
jmp 0x10193361
and ecx, 0xfff4ffff
or ecx, 0x40000
jmp 0x10193361
and ecx, 0xfff5ffff
or ecx, 0x50000
jmp 0x10193361
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 0x1019337f
sub eax, 1
jne 0x10193383
or byte [edi + 0x13], 2
jmp 0x10193383
and byte [edi + 0x13], 0xfd
cmp dword [esi + 0x74], 0
je 0x101933b7
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 0x101933ef
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
mov ebp, ecx
mov ecx, dword [esp + 0x2c]
or ebp, eax
mov eax, dword [esp + 0x30]
push eax
push ecx
mov dword [edi + 0x10], ebp
call fcn.100ea390
xor eax, ebp
and eax, 0x10
mov edx, eax
xor edx, ebp
mov dword [edi + 0x10], edx
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x54]
mov ecx, dword [ecx + eax*4]
mov ebp, ecx
shr ebp, 4
and ebp, 3
mov ebp, dword [ebp*4 + 0x10214474]
mov eax, ecx
shr eax, 6
and eax, 3
mov eax, dword [eax*4 + 0x10214474]
mov dword [esp + 0x38], ebp
mov ebp, ecx
and eax, 3
and ecx, 3
mov ecx, dword [ecx*4 + 0x10214474]
add eax, eax
add eax, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x38]
shr ebp, 2
and ecx, 3
or eax, ecx
mov ecx, dword [esp + 0x24]
and ebp, 3
mov ebp, dword [ebp*4 + 0x10214474]
shl eax, 0xe
and ebp, 3
or eax, ebp
add eax, eax
add eax, eax
and ecx, 3
and edx, 0xfff0fff0
or eax, ecx
or eax, edx
mov dword [edi + 0x10], eax
mov edx, dword [esi + 0x3c]
add esp, 8
cmp byte [edx], 0
je 0x101935b0
and eax, 0xfe1fffff
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x50]
mov edx, dword [ecx + eax*4 + 4]
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + edx*4]
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx + 4]
mov eax, dword [ebx]
push ebp
mov ecx, ebx
mov dword [esp + 0x34], edx
call dword [eax + 0x1c]
add eax, dword [esp + 0x30]
mov edx, dword [ebx]
push ebp
mov ecx, ebx
mov dword [esp + 0x34], eax
call dword [edx + 0x18]
movzx ecx, byte [esi + 0x9b]
mov ebp, dword [edi + 0xc]
shl ecx, 0xe
xor ecx, dword [edi + 0x14]
and ebp, 0xffff87ff
and ecx, 0x4000
xor dword [edi + 0x14], ecx
mov cl, byte [esi + 0x9f]
mov edx, dword [edi + 0x14]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
and eax, 0xff
shl edx, 0xc
or ebp, edx
and ecx, 1
or ch, 3
or ebp, 0x400
mov dword [edi + 0xc], ebp
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x1c]
shl ecx, 5
and eax, 0xfe7fc01f
mov ebp, ecx
mov ecx, dword [esp + 0x2c]
or ebp, eax
mov eax, dword [esp + 0x30]
push eax
push ecx
mov dword [edi + 0x14], ebp
call fcn.100ea390
mov ecx, ebp
xor ecx, eax
and ecx, 0x10
xor ecx, ebp
mov dword [edi + 0x14], ecx
mov eax, dword [esi + 0x54]
mov edx, dword [esi + 0x44]
mov edx, dword [eax + edx*4 + 4]
mov ebp, edx
shr ebp, 4
and ebp, 3
mov ebp, dword [ebp*4 + 0x10214474]
mov eax, edx
shr eax, 6
and eax, 3
mov eax, dword [eax*4 + 0x10214474]
mov dword [esp + 0x34], ebp
mov ebp, edx
and edx, 3
mov edx, dword [edx*4 + 0x10214474]
and eax, 3
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x34]
add eax, eax
shr ebp, 2
add eax, eax
and edx, 3
and ebp, 3
mov ebp, dword [ebp*4 + 0x10214474]
or eax, edx
add esp, 8
shl eax, 0xe
and ebp, 3
or eax, ebp
add eax, eax
and ecx, 0xfff0fff0
add eax, eax
or eax, ecx
mov ecx, dword [esp + 0x30]
and ecx, 3
or eax, ecx
mov dword [edi + 0x14], eax
mov ecx, dword [esi + 0x3c]
cmp byte [ecx + 1], 0
je 0x101936eb
and eax, 0xfe1fffff
mov dword [edi + 0x14], eax
cmp dword [ebx + 0x1c], 0
je 0x10193718
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