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

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [esp + 0x28]
push ebp
xor edx, edx
push esi
mov esi, ecx
mov ebp, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov edx, ebp
mov ecx, 1
shr edx, 2
test cl, dl
push edi
mov edi, dword [ebx + 0x94]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
je 0x10192741
mov dword [esp + 0x14], 2
mov edx, ebp
shr edx, 3
test dl, 1
je 0x10192753
mov dword [esp + 0x14], 1
cmp eax, 4
je 0x10192768
cmp eax, 8
je 0x10192768
mov ecx, 2
mov dword [esp + 0x10], ecx
jmp 0x10192776
mov eax, ebp
shr eax, 1
movzx eax, al
and eax, 1
mov dword [esp + 0x18], eax
test cl, 1
je 0x1019301d
mov ebp, dword [esi + 0x1c]
test ebp, ebp
je 0x10192931
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x2c]
sub eax, ebp
add eax, dword [esi + 0x40]
add eax, eax
add eax, eax
cmp dword [eax + edx], 0
je 0x10192931
mov edx, dword [esi + 0x5c]
mov ecx, dword [esi + 0x4c]
mov ecx, dword [edx + ecx*4]
mov ebp, dword [esi + 0x50]
mov edx, dword [esi + 0x68]
mov eax, dword [eax + ebp]
mov ebp, dword [esi + 0x34]
mov ecx, dword [edx + ecx*4]
cmp ecx, dword [ebp + eax*4]
je 0x1019292d
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
mov eax, dword [edi + 8]
lea ebp, [edi + 8]
and al, 0x81
or al, 1
mov dword [ebp], eax
mov ecx, dword [esi + 0x44]
sub ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x2c]
add ecx, dword [esi + 0x40]
mov eax, 8
cmp dword [edx + ecx*4], 2
je 0x101927f4
mov eax, dword [esp + 0x1c]
push eax
mov ecx, edi
call fcn.100ea3e0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
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 + 0x34], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov ecx, dword [esp + 0x34]
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 + 0x34], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x34]
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 + 0x38]
push eax
mov ecx, ebx
call fcn.10142640
mov ecx, dword [eax]
jmp 0x10192931
mov ecx, dword [esp + 0x10]
test cl, 1
je 0x1019301d
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x1c]
and al, 0xc1
or al, 0x41
push ecx
mov ecx, edi
mov dword [edi + 8], eax
call fcn.100ea3e0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, ecx
sar eax, 1
and eax, 1
shl eax, 0x10
and edx, 3
or eax, edx
add eax, eax
add eax, eax
add eax, eax
and ecx, 1
or eax, ecx
mov ecx, dword [edi + 8]
shl eax, 9
and ecx, 0xefffcdff
or eax, ecx
mov dword [edi + 8], eax
cmp byte [esi + 0x98], 0
je 0x10192a4c
movzx ecx, byte [esi + 0x99]
mov edx, dword [esi + 0x54]
mov edx, dword [edx]
shl ecx, 0x14
xor ecx, eax
and ecx, 0x100000
xor ecx, eax
mov ebp, edx
shr ebp, 2
mov eax, edx
and eax, 3
and ebp, 3
cmp eax, ebp
mov dword [edi + 8], ecx
jne 0x10192a1e
mov ebp, edx
shr ebp, 4
and ebp, 3
cmp eax, ebp
jne 0x10192a1e
shr edx, 6
and edx, 3
cmp eax, edx
jne 0x10192a1e
cmp eax, 3
ja case.default.0x101929df
jmp dword [eax*4 + 0x10193030]
and ecx, 0xfff2ffff
or ecx, 0x20000
jmp 0x10192a2a
and ecx, 0xfff3ffff
or ecx, 0x30000
jmp 0x10192a2a
and ecx, 0xfff4ffff
or ecx, 0x40000
jmp 0x10192a2a
and ecx, 0xfff5ffff
or ecx, 0x50000
jmp 0x10192a2a
and ecx, 0xfff1ffff
or ecx, 0x10000
mov dword [edi + 8], 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 0x10192a48
sub eax, 1
jne 0x10192a4c
or byte [edi + 0x13], 2
jmp 0x10192a4c
and byte [edi + 0x13], 0xfd
mov eax, dword [esp + 0x30]
push eax
push 0
push 0x20
push 0
mov ecx, edi
call fcn.10142680
mov ebp, dword [esi + 0x4c]
mov edx, dword [esi + 0x64]
mov ecx, dword [esi + 0x60]
mov eax, dword [ecx + ebp*4]
mov ecx, dword [ecx + ebp*4]
and ecx, dword [edx + ebp*4]
and eax, dword [edx + ebp*4]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + ebp*4]
and ecx, dword [edx + ebp*4]
shr eax, 3
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + ebp*4]
and ecx, dword [edx + ebp*4]
mov edx, dword [esp + 0x34]
and eax, 1
add eax, eax
shr edx, 2
and edx, 1
or eax, edx
mov edx, dword [esp + 0x10]
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 + 0x34], ecx
push ebp
mov ecx, ebx
call dword [edx + 0x1c]
add eax, dword [esp + 0x34]
push ebp
mov dword [esp + 0x38], 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 + 0x10], edx
mov edx, dword [esp + 0x30]
and edx, 7
mov dword [esp + 0x24], 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 + 0x10]
shl ecx, 5
and eax, 0xfe7f401f
or ecx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], ecx
mov dword [edi + 0x10], ecx
mov ecx, dword [esp + 0x30]
push eax
push ecx
call fcn.100ea390
mov ecx, dword [esp + 0x18]
xor eax, ecx
and eax, 0x10
xor eax, ecx
mov dword [edi + 0x10], eax
mov edx, dword [esi + 0x44]
mov dword [esp + 0x28], 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 + 0x3c], edx
mov edx, ecx
and ecx, 3
mov ecx, dword [ecx*4 + 0x10214474]
and eax, 3
add eax, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x3c]
add eax, eax
shr edx, 2
and ecx, 3
or eax, ecx
mov ecx, dword [esp + 0x18]
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 + 0x28]
and ecx, 0xfff0fff0
or eax, ecx
mov dword [edi + 0x10], eax
mov edx, dword [esi + 0x3c]
add esp, 8
cmp byte [edx], 0
je 0x10192c0d
and eax, 0xfe1fffff
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [eax]
mov eax, dword [esp + 0x24]
and ebp, 0xffff8fff
shl eax, 0xc
or ebp, eax
or ebp, 0xc00
mov dword [edi + 0x14], ecx
mov dword [edi + 0xc], ebp
cmp dword [ebx + 0x1c], 0
je 0x10192c49
push 0x10
lea eax, [edi + 8]
push eax
lea edx, [esp + 0x3c]
push edx
mov ecx, ebx
call fcn.100fd200
mov eax, dword [eax]
jmp 0x10192c4e
mov eax, 2
mov ecx, eax
test cl, 1
je 0x1019301d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x1c]
lea ebp, [edi + 8]
and ecx, 0xffffffc0
or ecx, 0x40
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 + 0x18]
mov eax, ecx
sar eax, 1
and eax, 1
shl eax, 0x10
and edx, 3
or eax, edx
add eax, eax
add eax, eax
add eax, eax
and ecx, 1
or eax, ecx
mov ecx, dword [ebp]
shl eax, 9
and ecx, 0xefffcdff
or eax, ecx
mov dword [ebp], eax
cmp byte [esi + 0x98], 0
je 0x10192d7c
movzx ecx, byte [esi + 0x99]
mov edx, dword [esi + 0x54]
mov edx, dword [edx]
shl ecx, 0x14
xor ecx, eax
and ecx, 0x100000
xor ecx, eax
mov eax, edx
mov dword [esp + 0x34], edx
shr edx, 2
and eax, 3
and edx, 3
cmp eax, edx
mov dword [ebp], ecx
jne 0x10192d4e
mov edx, dword [esp + 0x34]
shr edx, 4
and edx, 3
cmp eax, edx
jne 0x10192d4e
mov edx, dword [esp + 0x34]
shr edx, 6
and edx, 3
cmp eax, edx
jne 0x10192d4e
cmp eax, 3
ja case.default.0x10192d0f
jmp dword [eax*4 + 0x10193040]
and ecx, 0xfff2ffff
or ecx, 0x20000
jmp 0x10192d5a
and ecx, 0xfff3ffff
or ecx, 0x30000
jmp 0x10192d5a
and ecx, 0xfff4ffff
or ecx, 0x40000
jmp 0x10192d5a
and ecx, 0xfff5ffff
or ecx, 0x50000
jmp 0x10192d5a
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 0x10192d78
sub eax, 1
jne 0x10192d7c
or byte [edi + 0x13], 2
jmp 0x10192d7c
and byte [edi + 0x13], 0xfd
cmp dword [esi + 0x74], 0
je 0x10192db0
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 + 0x34], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
push edx
push ecx
push eax
push 2
jmp 0x10192de8
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 + 0x34], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
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 edx, dword [esi + 0x64]
mov ecx, dword [esi + 0x60]
mov eax, dword [ecx + ebp*4]
mov ecx, dword [ecx + ebp*4]
and ecx, dword [edx + ebp*4]
and eax, dword [edx + ebp*4]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + ebp*4]
and ecx, dword [edx + ebp*4]
shr eax, 3
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + ebp*4]
and ecx, dword [edx + ebp*4]
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
and eax, 1
add eax, eax
shr edx, 2
and edx, 1
or eax, edx
mov edx, dword [esp + 0x24]
add eax, eax
shr edx, 1
and edx, 1
or eax, edx
mov edx, dword [esp + 0x30]
add eax, eax
and ecx, 1
or eax, ecx
mov ecx, dword [edi + 0xc]
shl eax, 9
and ebp, 7
or eax, ebp
shl eax, 7
and ecx, 0xfff0fc1f
or eax, ecx
push 0
push edx
mov dword [edi + 0xc], eax
call fcn.100ea390
mov ecx, dword [edi + 0x10]
and ecx, 0xfe7f640f
and eax, 0x10
or ecx, eax
or ecx, 0x600400
mov dword [edi + 0x10], ecx
mov edx, dword [esi + 0x44]
mov eax, dword [esi + 0x50]
mov ecx, dword [eax + edx*4 + 4]
mov edx, dword [esi + 0x34]
mov eax, dword [edx + ecx*4]
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx + 4]
add esp, 8
mov dword [esp + 0x34], edx
mov edx, dword [ebx]
push eax
mov ecx, ebx
mov dword [esp + 0x14], eax
call dword [edx + 0x1c]
add eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
movzx edx, byte [esi + 0x9b]
shl edx, 0xe
xor edx, dword [edi + 0x14]
and edx, 0x4000
xor dword [edi + 0x14], edx
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x24], ecx
mov cl, byte [esi + 0x9f]
and dh, 0x87
and eax, 0xff
shl ebp, 0xc
and ecx, 1
or ch, 3
or edx, ebp
or dh, 4
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x24]
shl ecx, 5
and eax, 0xfe7fc01f
mov ebp, ecx
mov ecx, dword [esp + 0x30]
or ebp, eax
mov eax, dword [esp + 0x34]
push eax
push ecx
mov dword [edi + 0xc], edx
mov dword [edi + 0x14], ebp
call fcn.100ea390
xor eax, ebp
and eax, 0x10
mov edx, eax
xor edx, ebp
mov dword [edi + 0x14], edx
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x54]
mov ecx, dword [ecx + eax*4 + 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 + 0x3c], ecx
mov ecx, dword [esp + 0x38]
shr ebp, 2
and ecx, 3
or eax, ecx
mov ecx, dword [esp + 0x3c]
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 edx, 0xfff0fff0
or eax, edx
and ecx, 3
or eax, ecx
mov dword [edi + 0x14], eax
mov edx, dword [esi + 0x3c]
add esp, 8
cmp byte [edx + 1], 0
je 0x10192fd9
and eax, 0xfe1fffff
mov dword [edi + 0x14], eax
cmp dword [ebx + 0x1c], 0
je 0x10193006
mov eax, dword [esp + 0x20]
push 0x10
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, ebx
call fcn.100fd200
mov eax, dword [eax]
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
mov dword [ecx], eax
mov eax, ecx
pop ebx
add esp, 0x18
ret 0xc
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
mov eax, 2
pop ebp
mov dword [ecx], eax
mov eax, ecx
pop ebx
add esp, 0x18
ret 0xc
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x18
ret 0xc