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

Disassembly:
sub esp, 0x1c
push ebx
push ebp
mov ebp, dword [esp + 0x30]
push esi
mov esi, dword [ebp + 0x94]
push edi
mov edi, ecx
mov eax, dword [edi + 0xc]
mov ecx, ebp
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], eax
call fcn.1014abf0
mov edx, dword [edi + 0x24]
mov ecx, eax
xor ebx, ebx
mov eax, edx
shr eax, 2
test al, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
je 0x1018bc72
mov ebx, 2
mov dword [esp + 0x38], ebx
mov eax, edx
shr eax, 3
test al, 1
je 0x1018bc84
mov ebx, 1
mov dword [esp + 0x38], ebx
shr edx, 1
movzx eax, dl
mov edx, 1
and eax, edx
cmp byte [edi + 0xa2], 0
mov dword [esp + 0x28], eax
je 0x1018bca1
mov dword [esp + 0x20], edx
test byte [edi + 0x24], 1
je 0x1018bcab
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x1018be8b
mov eax, dword [edi + 0x44]
sub eax, edx
add eax, dword [edi + 0x40]
mov edx, dword [edi + 0x2c]
add eax, eax
add eax, eax
cmp dword [eax + edx], 0
je 0x1018be8b
mov edx, dword [edi + 0x5c]
mov ecx, dword [edi + 0x4c]
mov ecx, dword [edx + ecx*4]
mov ebx, dword [edi + 0x50]
mov edx, dword [edi + 0x68]
mov eax, dword [eax + ebx]
mov ebx, dword [edi + 0x34]
mov ecx, dword [edx + ecx*4]
cmp ecx, dword [ebx + eax*4]
je 0x1018be83
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, dword [esi + 8]
and al, 0x81
or al, 1
mov dword [esi + 8], eax
mov ecx, dword [edi + 0x44]
sub ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x2c]
add ecx, dword [edi + 0x40]
mov eax, 8
cmp dword [edx + ecx*4], 2
je 0x1018bd1c
mov eax, dword [esp + 0x18]
push eax
mov ecx, esi
call fcn.100ea3e0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
shl eax, 0xc
xor eax, dword [esi + 8]
and eax, 0x3000
xor dword [esi + 8], eax
mov edx, dword [ecx]
call dword [edx + 0xc]
test byte [eax + 0x14], 0x80
je 0x1018bd51
mov eax, dword [esi + 8]
and ah, 0xf7
or ah, 4
mov dword [esi + 8], eax
mov ebx, dword [esp + 0x38]
mov eax, dword [esi + 8]
mov ecx, ebx
sar ecx, 1
and ecx, 1
shl ecx, 0x13
mov edx, ebx
and edx, 1
or ecx, edx
shl ecx, 9
and eax, 0xeffffdff
or ecx, eax
mov dword [esi + 8], ecx
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x5c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edi + 0x68]
mov eax, dword [ecx + eax*4]
mov edx, dword [ebp]
push eax
mov ecx, ebp
mov dword [esp + 0x14], eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
push ecx
mov ecx, ebp
call dword [eax + 0x18]
mov ecx, dword [esp + 0x38]
mov edx, dword [esi + 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 [esi + 0xc], eax
mov eax, dword [edi + 0x48]
add eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x60]
add eax, dword [edi + 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, esi
push edx
push eax
call fcn.101899a0
mov eax, dword [edi + 0x44]
sub eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x50]
add eax, dword [edi + 0x40]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp]
push eax
mov ecx, ebp
mov dword [esp + 0x14], eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
push ecx
mov ecx, ebp
call dword [eax + 0x18]
mov ecx, dword [esp + 0x38]
mov edx, dword [esi + 0xc]
add ecx, ecx
and eax, 0xff
add ecx, ecx
or eax, 0x30000
and ecx, 0x10
shl eax, 5
or eax, ecx
mov ecx, dword [esi + 0x10]
and ecx, 0xfe7f600f
or eax, ecx
and edx, 0xffffffbf
or edx, 0x3a0
mov dword [esi + 0x10], eax
lea eax, [esi + 8]
mov dword [esi + 0xc], edx
push eax
lea edx, [esp + 0x3c]
push edx
mov ecx, ebp
call fcn.10142640
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
jmp 0x1018bfa2
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0xc]
test byte [eax + 0x14], 0x80
je 0x1018bf9e
mov eax, dword [edi + 0x4c]
mov edx, dword [edi + 0x64]
mov ecx, dword [edi + 0x60]
mov edx, dword [edx + eax*4]
and edx, dword [ecx + eax*4]
test dl, 1
je 0x1018bedc
mov edx, dword [edi + 0x64]
mov edx, dword [edx + eax*4]
and edx, dword [ecx + eax*4]
test dl, 2
je 0x1018bedc
mov edx, dword [edi + 0x64]
mov edx, dword [edx + eax*4]
and edx, dword [ecx + eax*4]
test dl, 4
je 0x1018bedc
mov edx, dword [edi + 0x64]
mov edx, dword [edx + eax*4]
and edx, dword [ecx + eax*4]
test dl, 8
jne 0x1018bf9e
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x5c]
mov edx, dword [edi + 0x68]
add eax, eax
add eax, eax
mov ecx, dword [eax + ecx]
mov edx, dword [edx + ecx*4]
mov dword [esp + 0x38], edx
mov edx, dword [edi + 0x58]
mov edx, dword [edx + eax]
mov eax, dword [edi + 0x68]
add edx, ecx
mov eax, dword [eax + edx*4 - 4]
mov edx, dword [ebp]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
push eax
mov ecx, ebp
call dword [edx + 0x18]
mov edx, dword [ebp]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
push eax
mov ecx, ebp
call dword [edx + 0x18]
cmp dword [esp + 0x38], eax
mov dword [esp + 0x14], eax
je 0x1018bf9e
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x18]
and al, 0x81
or al, 1
push ecx
mov ecx, esi
mov dword [esi + 8], eax
call fcn.100ea3e0
push 0
push 0
push 0
push 0
mov ecx, esi
call fcn.10142680
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
and eax, 0xff
or eax, 0x30000
shl eax, 5
and ecx, 0xfe7f600f
or eax, ecx
and edx, 0xfffffc3f
or edx, 0x20
mov dword [esi + 0x10], eax
lea eax, [esi + 8]
mov dword [esi + 0xc], edx
push eax
lea edx, [esp + 0x3c]
push edx
mov ecx, ebp
call fcn.10142640
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
test cl, 1
mov dword [esp + 0x14], 1
je 0x1018c44b
cmp dword [esp + 0x34], 8
jne 0x1018bfc2
mov dword [esp + 0x14], 2
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x84]
mov edx, dword [ecx]
push 0
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x40]
push 0
push eax
mov eax, dword [esp + 0x28]
push eax
push 1
call dword [edx + 4]
mov edx, dword [ebp]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x78]
push eax
mov ecx, ebp
call dword [edx + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x18]
and ecx, 0xffffffb1
or ecx, 0x31
mov dword [esi + 8], ecx
push edx
mov ecx, esi
call fcn.100ea3e0
mov ecx, dword [esp + 0x34]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xc]
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, ebx
sar eax, 1
and eax, 1
shl eax, 0x10
and ecx, 3
or eax, ecx
mov ecx, dword [esi + 8]
add eax, eax
add eax, eax
add eax, eax
and ebx, 1
or eax, ebx
shl eax, 9
and ecx, 0xefffcdff
or eax, ecx
mov dword [esi + 8], eax
cmp byte [edi + 0x98], 0
je 0x1018c120
movzx ecx, byte [edi + 0x99]
mov edx, dword [edi + 0x54]
mov edx, dword [edx]
shl ecx, 0x14
xor ecx, eax
and ecx, 0x100000
xor ecx, eax
mov ebx, edx
shr ebx, 2
mov eax, edx
and eax, 3
and ebx, 3
cmp eax, ebx
mov dword [esi + 8], ecx
jne 0x1018c0f2
mov ebx, edx
shr ebx, 4
and ebx, 3
cmp eax, ebx
jne 0x1018c0f2
shr edx, 6
and edx, 3
cmp eax, edx
jne 0x1018c0f2
cmp eax, 3
ja case.default.0x1018c0b3
jmp dword [eax*4 + 0x1018c45c]
and ecx, 0xfff2ffff
or ecx, 0x20000
jmp 0x1018c0fe
and ecx, 0xfff3ffff
or ecx, 0x30000
jmp 0x1018c0fe
and ecx, 0xfff4ffff
or ecx, 0x40000
jmp 0x1018c0fe
and ecx, 0xfff5ffff
or ecx, 0x50000
jmp 0x1018c0fe
and ecx, 0xfff1ffff
or ecx, 0x10000
mov dword [esi + 8], ecx
mov eax, dword [edi + 0x50]
mov ecx, dword [eax]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*4]
sub eax, 0
je 0x1018c11c
sub eax, 1
jne 0x1018c120
or byte [esi + 0x13], 2
jmp 0x1018c120
and byte [esi + 0x13], 0xfd
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x5c]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 0x68]
mov ebx, dword [eax + edx*4]
mov edx, dword [ebp]
push ebx
mov ecx, ebp
call dword [edx + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
push ebx
mov ecx, ebp
call dword [eax + 0x18]
mov ecx, dword [esi + 0xc]
and eax, 0xff
and ecx, 0x601fffe0
shl eax, 0x15
or eax, ecx
mov ecx, dword [esp + 0x38]
or al, 0x1d
add ecx, ecx
add ecx, ecx
shl ecx, 0x10
xor ecx, eax
mov dword [esi + 0xc], eax
and ecx, 0x100000
xor ecx, eax
mov dword [esi + 0xc], ecx
mov ebx, dword [edi + 0x60]
mov edx, dword [edi + 0x64]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 0x4c]
mov eax, dword [ebx + ecx*4]
and eax, dword [edx + ecx*4]
mov ebx, dword [ebx + ecx*4]
and ebx, dword [edx + ecx*4]
mov edx, dword [edx + ecx*4]
mov dword [esp + 0x34], ebx
mov ebx, dword [edi + 0x60]
and edx, dword [ebx + ecx*4]
shr eax, 3
mov dword [esp + 0x38], edx
mov edx, dword [edi + 0x64]
mov edx, dword [edx + ecx*4]
and edx, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x34]
and eax, 1
shr ecx, 2
add eax, eax
and ecx, 1
or eax, ecx
mov ecx, dword [esp + 0x38]
add eax, eax
shr ecx, 1
and ecx, 1
or eax, ecx
mov ecx, dword [esp + 0x28]
add eax, eax
and edx, 1
or eax, edx
shl eax, 0x10
and ecx, 0xfff0ffff
or eax, ecx
mov dword [esi + 0xc], eax
cmp dword [edi + 0x90], 0
jbe 0x1018c21d
mov edx, dword [edi + 0x8c]
mov cl, byte [edx]
and cl, 1
mov byte [esp + 0x34], cl
je 0x1018c21d
mov edx, dword [esi + 0x10]
and al, 0x9f
and edx, 0xfe7f600f
or eax, 0x380
or edx, 0x600000
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edx
jmp 0x1018c343
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x50]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx]
mov dword [esp + 0x34], edx
mov edx, dword [ebp]
push eax
mov ecx, ebp
mov dword [esp + 0x14], eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov eax, dword [ebp]
add ebx, dword [esp + 0x34]
push ecx
mov ecx, ebp
call dword [eax + 0x18]
movzx edx, byte [edi + 0x9a]
shl edx, 0xe
xor edx, dword [esi + 0x10]
and eax, 0xff
and edx, 0x4000
xor dword [esi + 0x10], edx
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x34], ecx
mov cl, byte [edi + 0x9e]
and edx, 0xffffffbf
or edx, 0x3a0
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0x34]
add ebx, ebx
and edx, 0xfe7f401f
and ecx, 1
or ch, 3
add ebx, ebx
shl ecx, 8
or ecx, eax
shl ecx, 5
mov eax, ecx
or eax, edx
mov ecx, eax
mov dword [esi + 0x10], eax
xor ecx, ebx
and ecx, 0x10
xor ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [edi + 0x44]
mov edx, dword [edi + 0x54]
mov edx, dword [edx + eax*4]
mov ebx, edx
shr ebx, 4
and ebx, 3
mov ebx, dword [ebx*4 + 0x10214474]
mov eax, edx
shr eax, 6
and eax, 3
mov eax, dword [eax*4 + 0x10214474]
mov dword [esp + 0x34], ebx
mov ebx, edx
and eax, 3
and edx, 3
mov edx, dword [edx*4 + 0x10214474]
add eax, eax
shr ebx, 2
add eax, eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x34]
and ebx, 3
mov ebx, dword [ebx*4 + 0x10214474]
and edx, 3
or eax, edx
shl eax, 0xe
and ebx, 3
or eax, ebx
add eax, eax
add eax, eax
and ecx, 0xfff0fff0
or eax, ecx
mov ecx, dword [esp + 0x38]
and ecx, 3
or eax, ecx
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x3c]
cmp byte [ecx], 0
je 0x1018c343
and eax, 0xfe1fffff
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x24]
and ah, 0x8f
or ah, 0xc
mov dword [esi + 0x14], edx
mov dword [esi + 0xc], eax
cmp dword [ebp + 0x1c], 0
je 0x1018c372
push 0x10
lea eax, [esi + 8]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
call fcn.100fd200
mov eax, dword [eax]
jmp 0x1018c377
mov eax, 2
mov ecx, eax
test cl, 1
mov dword [esp + 0x10], eax
je 0x1018c44b
cmp dword [edi + 0x48], 0
je 0x1018c44b
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
call dword [edx + 0xc]
test byte [eax + 0x16], 4
je 0x1018c447
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esi + 8]
and dword [esi + 0xc], 0x600fffe0
lea ebx, [esi + 8]
and ecx, 0xff7fff81
or ecx, 0x600001
mov dword [ebx], ecx
mov edx, dword [edi + 0x4c]
mov eax, dword [edi + 0x5c]
mov ecx, dword [eax + edx*4]
add ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x68]
mov edi, dword [edx + ecx*4 - 4]
mov eax, dword [ebp]
push edi
mov ecx, ebp
call dword [eax + 0x1c]
mov edx, dword [ebp]
push edi
mov ecx, ebp
mov dword [esp + 0x3c], eax
call dword [edx + 0x18]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
and ecx, 0xfffffc3f
or ecx, 0x20
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x38]
and eax, 0xff
add ecx, ecx
or eax, 0x30000
add ecx, ecx
shl eax, 5
and ecx, 0x10
or eax, ecx
and edx, 0xfe7f600f
or eax, edx
mov dword [esi + 0x10], eax
push ebx
lea eax, [esp + 0x38]
push eax
mov ecx, ebp
call fcn.10142640
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword [ecx], eax
mov eax, ecx
pop ebx
add esp, 0x1c
ret 0xc
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x1c
ret 0xc