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

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x3c]
push edi
mov edi, ecx
mov ecx, esi
call fcn.1014abf0
mov ebp, dword [edi + 0x24]
mov esi, dword [esi + 0x90]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x78]
shr ebp, 1
mov dword [esp + 0x18], eax
and ebp, 1
add eax, 1
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
shl eax, 0x15
mov dword [esp + 0x10], 1
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], eax
test byte [esp + 0x10], 1
je 0x10177de8
cmp ecx, ebx
jae 0x10177ef7
cmp ecx, 0x3f
ja 0x10177c96
cmp ecx, dword [edi + 0x90]
jae 0x10177c96
mov edx, dword [edi + 0x8c]
mov eax, ecx
and ecx, 0x1f
mov ebx, 1
shl ebx, cl
shr eax, 5
test dword [edx + eax*4], ebx
setne al
test al, al
jne 0x10177de0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ebx, dword [esp + 0x14]
and ecx, 0xff7fcf81
mov eax, ebp
and eax, 3
shl eax, 0xc
or eax, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1fe00000
and edx, 0xffe0
or edx, ecx
or eax, 0x600001
mov dword [esi + 8], eax
or edx, 0x2000001e
mov dword [esi + 0xc], edx
mov ecx, dword [edi + 0x44]
mov ebp, dword [edi + 0x50]
add ecx, ebx
mov ecx, dword [ebp + ecx*4]
mov ebp, dword [edi + 0x34]
mov ecx, dword [ebp + ecx*4]
mov dword [esp + 0x10], ecx
movzx ecx, byte [edi + 0x9c]
shl ecx, 0xe
xor ecx, dword [esi + 0x10]
shr eax, 0x15
and ecx, 0x4000
xor dword [esi + 0x10], ecx
movzx ecx, byte [edi + 0x9d]
mov ebp, dword [esi + 0x10]
shl ecx, 0xd
xor ecx, ebp
and ecx, 0x2000
xor ecx, ebp
mov dword [esi + 0x10], ecx
mov ebp, dword [edi + 0x30]
mov ebp, dword [ebp + ebx*4]
and edx, 0xffffffbf
and eax, 7
or edx, 0x3a0
cmp eax, 5
mov dword [esi + 0xc], edx
ja case.0x10177d3f.0
jmp dword [eax*4 + 0x101785a0]
and ecx, 0xfe45ffff
or ecx, 0x450000
jmp 0x10177d76
and ecx, 0xfe69ffff
or ecx, 0x690000
jmp 0x10177d76
and ecx, 0xfe8dffff
or ecx, 0x8d0000
jmp 0x10177d76
and ecx, 0xfe00ffff
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], ecx
mov edx, ecx
and eax, 0xff
shl eax, 5
and edx, 0xffff601f
or eax, edx
lea ecx, [ebp*4]
xor ecx, eax
and ecx, 0x1f
xor ecx, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x10], ecx
mov eax, dword [edi + 0x38]
cmp byte [ebx + eax], 0
je 0x10177db5
and ecx, 0xfe00ffff
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x1c], 0
je 0x10177dd3
push 0x10
lea eax, [esi + 8]
push eax
lea edx, [esp + 0x30]
push edx
call fcn.100fd200
mov eax, dword [eax]
jmp 0x10177dd8
mov eax, 2
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
add dword [esp + 0x1c], 0x200000
add ecx, 1
cmp ecx, 3
mov dword [esp + 0x14], ecx
jb 0x10177c53
test byte [esp + 0x10], 1
je 0x10178135
cmp ebx, 0x3f
ja 0x10177e41
cmp ebx, dword [edi + 0x90]
jae 0x10177e41
mov eax, dword [edi + 0x8c]
mov ecx, ebx
mov edx, ebx
and ecx, 0x1f
mov ebx, 1
shl ebx, cl
shr edx, 5
test dword [eax + edx*4], ebx
mov ebx, dword [esp + 0x38]
setne al
test al, al
jne 0x10178017
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x18]
and ecx, 0xff7fcf81
mov eax, ebp
and eax, 3
add edx, 4
shl eax, 0xc
or eax, ecx
mov ecx, dword [esi + 0xc]
and ecx, 0xffe0
shl edx, 0x15
and edx, 0x1fe00000
or edx, ecx
or eax, 0x600001
mov dword [esi + 8], eax
or edx, 0x2000001e
mov dword [esi + 0xc], edx
mov ecx, dword [edi + 0x44]
mov ebp, dword [edi + 0x50]
add ecx, ebx
mov ecx, dword [ebp + ecx*4]
mov ebp, dword [edi + 0x34]
mov ecx, dword [ebp + ecx*4]
mov dword [esp + 0x10], ecx
movzx ecx, byte [edi + 0x9c]
shl ecx, 0xe
xor ecx, dword [esi + 0x10]
shr eax, 0x15
and ecx, 0x4000
xor dword [esi + 0x10], ecx
movzx ecx, byte [edi + 0x9d]
mov ebp, dword [esi + 0x10]
shl ecx, 0xd
xor ecx, ebp
and ecx, 0x2000
xor ecx, ebp
mov dword [esi + 0x10], ecx
mov ebp, dword [edi + 0x30]
mov ebp, dword [ebp + ebx*4]
and edx, 0xffffffbf
and eax, 7
or edx, 0x3a0
cmp eax, 5
mov dword [esi + 0xc], edx
ja case.0x10177ef0.0
jmp dword [eax*4 + 0x101785b8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edx, dword [esi + 8]
and edx, 0xff7fcf81
lea eax, [esi + 8]
mov ecx, ebp
and ecx, 3
shl ecx, 0xc
or ecx, edx
mov edx, dword [esi + 0xc]
or ecx, 0x600001
mov dword [eax], ecx
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x1c]
and edx, 0xfc00
and ecx, 0x1fe00000
or edx, ecx
or edx, 0x200003fe
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0x40]
cmp dword [edx + 0x1c], 0
je 0x10177f6d
push 0x10
push eax
lea eax, [esp + 0x34]
push eax
mov ecx, edx
call fcn.100fd200
mov eax, dword [eax]
mov dword [esp + 0x10], eax
jmp 0x10177de4
mov eax, 2
mov dword [esp + 0x10], eax
jmp 0x10177de4
and ecx, 0xfe45ffff
or ecx, 0x450000
jmp 0x10177fab
and ecx, 0xfe69ffff
or ecx, 0x690000
jmp 0x10177fab
and ecx, 0xfe8dffff
or ecx, 0x8d0000
jmp 0x10177fab
and ecx, 0xfe00ffff
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], ecx
mov edx, dword [esi + 0x10]
and eax, 0xff
shl eax, 5
and edx, 0xffff6000
lea ecx, [ebp*4]
or eax, edx
and ecx, 0x1f
or eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x38]
cmp byte [ebx + eax], 0
je 0x10177fec
push 0
push 1
push 0
push 0
mov ecx, esi
call fcn.100ea4b0
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x1c], 0
je 0x1017800a
push 0x10
lea eax, [esi + 8]
push eax
lea edx, [esp + 0x34]
push edx
call fcn.100fd200
mov eax, dword [eax]
jmp 0x1017800f
mov eax, 2
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x10], eax
test byte [esp + 0x10], 1
je 0x10178135
lea ecx, [ebx + 1]
cmp ecx, 0x3f
ja 0x10178059
cmp ecx, dword [edi + 0x90]
jae 0x10178059
mov edx, dword [edi + 0x8c]
mov eax, ecx
and ecx, 0x1f
mov ebx, 1
shl ebx, cl
shr eax, 5
test dword [edx + eax*4], ebx
mov ebx, dword [esp + 0x38]
setne al
test al, al
jne 0x10178135
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x18]
and edx, 0xff7fcf81
add eax, 5
mov ecx, ebp
and ecx, 3
shl ecx, 0xc
or ecx, edx
shl eax, 0x15
or ecx, 0x600001
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0xc]
and eax, 0x1fe00000
and ecx, 0xffe0
or eax, ecx
or eax, 0x2000001e
mov dword [esi + 0xc], eax
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0x50]
add edx, ebx
mov ecx, dword [eax + edx*4 + 4]
movzx eax, byte [edi + 0x9e]
mov edx, dword [edi + 0x34]
mov ecx, dword [edx + ecx*4]
shl eax, 0xe
xor eax, dword [esi + 0x10]
push 7
and eax, 0x4000
xor dword [esi + 0x10], eax
movzx edx, byte [edi + 0x9f]
mov eax, dword [esi + 0x10]
shl edx, 0xd
xor edx, eax
and edx, 0x2000
xor edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [edi + 0x30]
mov edx, dword [eax + ebx*4 + 4]
push edx
push ecx
push 1
push 0
mov ecx, esi
call fcn.100f2ee0
mov eax, dword [edi + 0x38]
cmp byte [eax + ebx + 1], 0
je 0x1017810e
push 0
push 1
push 0
push 0
mov ecx, esi
call fcn.100ea4b0
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x1c], 0
je 0x1017812c
push 0x10
lea eax, [esi + 8]
push eax
lea edx, [esp + 0x40]
push edx
call fcn.100fd200
mov eax, dword [eax]
jmp 0x10178131
mov eax, 2
mov dword [esp + 0x10], eax
cmp dword [edi + 0xa8], 0
jne 0x10178276
cmp dword [edi + 0xac], 0
jne 0x10178276
cmp dword [edi + 0xb0], 0
jne 0x10178276
cmp dword [edi + 0xb4], 0xf
jne 0x10178276
test byte [esp + 0x10], 1
je 0x101784b3
mov ecx, dword [esp + 0x40]
mov edx, dword [edi + 0xa0]
mov eax, dword [ecx]
push edx
call dword [eax + 0xc]
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + 0x84]
mov edx, dword [ecx]
push eax
mov eax, dword [edi + 0xa4]
push eax
mov eax, dword [esp + 0x44]
push 0
push eax
push 4
push 6
call dword [edx + 0x14]
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x38], eax
call dword [edx + 8]
mov eax, dword [esi + 8]
and al, 0xb1
or al, 0x31
push 8
mov ecx, esi
mov dword [esi + 8], eax
call fcn.100ea3e0
mov eax, dword [esp + 0x18]
mov edx, dword [esi]
shl ebp, 0xc
xor ebp, dword [esi + 8]
push eax
and ebp, 0x3000
xor dword [esi + 8], ebp
mov ecx, esi
call dword [edx + 0xc]
mov edx, dword [esi]
push 2
mov ecx, esi
call dword [edx + 0x10]
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x5c]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 0x68]
mov ecx, dword [eax + edx*4]
push 0
push 0
push ecx
push 1
mov ecx, esi
call fcn.100f2e20
mov edx, dword [edi + 0x30]
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x50]
push 0
push eax
add ecx, ebx
mov eax, dword [edx + ecx*4 + 8]
mov ecx, dword [edi + 0x34]
mov edx, dword [ecx + eax*4]
push edx
push 1
push 0
mov ecx, esi
call fcn.100f2ee0
mov eax, dword [edi + 0x38]
cmp byte [eax + ebx + 2], 0
je 0x10178246
push 0
push 1
push 0
push 0
mov ecx, esi
call fcn.100ea4b0
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x38]
and dh, 0x8f
or dh, 0xc
lea eax, [esi + 8]
push eax
lea eax, [esp + 0x3c]
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x44]
push eax
mov dword [esi + 0xc], edx
call fcn.10142640
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
jmp 0x101784b3
test byte [esp + 0x10], 1
je 0x101784b3
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x18]
push 0
push 0
and eax, 0xef7fff81
push ecx
or eax, 0x600201
push 2
mov ecx, esi
mov dword [esi + 8], eax
call fcn.100f2e20
mov edx, dword [edi + 0x30]
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x50]
push 0
push eax
add ecx, ebx
mov eax, dword [edx + ecx*4 + 8]
mov ecx, dword [edi + 0x34]
mov edx, dword [ecx + eax*4]
push edx
push 1
push 0
mov ecx, esi
call fcn.100f2ee0
mov eax, dword [edi + 0x38]
cmp byte [eax + ebx + 2], 0
je 0x101782eb
push 0
push 1
push 0
push 0
mov ecx, esi
call fcn.100ea4b0
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0x1c], 0
je 0x10178309
push 0x10
lea eax, [esi + 8]
push eax
lea edx, [esp + 0x40]
push edx
call fcn.100fd200
mov eax, dword [eax]
jmp 0x1017830e
mov eax, 2
test al, 1
mov dword [esp + 0x10], eax
je 0x101784b3
mov ebx, dword [edi + 0xa8]
mov eax, dword [edi + 0xac]
mov ecx, dword [edi + 0xb0]
and ebx, 0xf
shl ebx, 4
and eax, 0xf
or ebx, eax
mov eax, dword [edi + 0xb4]
shl ebx, 4
and ecx, 0xf
or ebx, ecx
test al, 1
jne 0x1017834c
or bh, 0x10
test al, 2
jne 0x10178353
or bh, 0x20
test al, 4
jne 0x1017835a
or bh, 0x40
test al, 8
jne 0x10178361
or bh, 0x80
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, dword [esi + 8]
and al, 0x81
or al, 1
push 1
mov ecx, esi
mov dword [esi + 8], eax
call fcn.100ea3e0
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x18]
and ecx, 0xefffffff
or ch, 2
push 1
push 2
push edx
push 2
mov dword [esi + 8], ecx
mov ecx, esi
call fcn.100f2e20
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x40]
and ah, 0xfc
or al, 0xe0
mov dword [esi + 0x14], ebx
mov dword [esi + 0xc], eax
cmp dword [ecx + 0x1c], 0
je 0x101783c8
push 0x10
lea eax, [esi + 8]
push eax
lea edx, [esp + 0x40]
push edx
call fcn.100fd200
mov eax, dword [eax]
jmp 0x101783cd
mov eax, 2
test al, 1
mov dword [esp + 0x10], eax
je 0x101784b3
mov ecx, dword [edi + 0xa0]
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0xc]
mov ecx, dword [ebx + 0x84]
mov edx, dword [ecx]
push eax
mov eax, dword [edi + 0xa4]
push eax
mov eax, dword [esp + 0x44]
push 0
push eax
push 4
push 6
call dword [edx + 0x14]
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x38], eax
call dword [edx + 8]
mov eax, dword [esi + 8]
mov edx, dword [esi]
and ebp, 3
and eax, 0xff7fcfb1
shl ebp, 0xc
or ebp, eax
mov eax, dword [esp + 0x18]
or ebp, 0x600031
push eax
mov ecx, esi
mov dword [esi + 8], ebp
call dword [edx + 0xc]
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x5c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edi + 0x68]
mov edx, dword [ecx + eax*4]
push 0
push 0
push edx
push 1
mov ecx, esi
call fcn.100f2e20
push 0
push 0
push 0
push 0
call fcn.1006dd40
add esp, 8
push eax
push 0
push 0
mov ecx, esi
call fcn.100f2ee0
mov eax, dword [esi]
push 2
mov ecx, esi
call dword [eax + 0x10]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x38]
and dh, 0x8f
or dh, 0xc
mov dword [esi + 0x14], ecx
mov dword [esi + 0xc], edx
cmp dword [ebx + 0x1c], 0
je 0x101784aa
push 0x10
lea eax, [esi + 8]
push eax
lea eax, [esp + 0x40]
push eax
mov ecx, ebx
call fcn.100fd200
mov eax, dword [eax]
jmp 0x101784af
mov eax, 2
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
test cl, 1
je 0x10178565
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
call dword [edx + 0xc]
test byte [eax + 0x16], 4
je 0x10178575
cmp dword [edi + 0xb4], 0
je 0x10178589
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esi + 8]
lea ebx, [esi + 8]
and ecx, 0xff7fff81
or ecx, 0x600001
push 0
push 0
mov dword [ebx], ecx
call fcn.1006dd40
mov edx, dword [esi + 0xc]
and eax, 0xff
shl eax, 0x15
and edx, 0xffe0
or eax, edx
or eax, 0x2000001c
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x5c]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 0x68]
mov ecx, dword [eax + edx*4 + 0xc]
add esp, 8
push 7
push 0
push ecx
push 1
push 0
mov ecx, esi
call fcn.100f2ee0
mov ecx, dword [esp + 0x40]
push ebx
lea edx, [esp + 0x44]
push edx
call fcn.10142640
mov eax, dword [eax]
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebp
mov dword [ecx], eax
mov eax, ecx
pop ebx
add esp, 0x20
ret 0x10
mov eax, dword [esp + 0x34]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x20
ret 0x10
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x20
ret 0x10
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x20
ret 0x10