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

Disassembly:
sub esp, 0x24
push ebx
push ebp
mov ebp, dword [esp + 0x3c]
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 [esp + 0x40]
xor ebx, ebx
sub edx, 1
mov ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
je 0x1018c4c4
sub edx, 2
je 0x1018c4c4
sub edx, 2
mov dword [esp + 0x2c], ebx
jne 0x1018c4cc
mov dword [esp + 0x2c], 1
mov eax, dword [edi + 0x24]
mov edx, eax
shr edx, 2
test dl, 1
je 0x1018c4e2
mov ebx, 2
mov dword [esp + 0x14], ebx
mov edx, eax
shr edx, 3
test dl, 1
je 0x1018c4f5
mov ebx, 1
mov dword [esp + 0x14], ebx
shr eax, 1
movzx eax, al
mov edx, 1
and eax, edx
cmp byte [edi + 0xa2], 0
mov dword [esp + 0x1c], eax
je 0x1018c512
mov dword [esp + 0x24], edx
test byte [edi + 0x24], 1
je 0x1018c51c
mov dword [esp + 0x28], edx
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x1018c6f8
mov edx, dword [edi + 0x44]
sub edx, eax
add edx, dword [edi + 0x40]
mov eax, dword [edi + 0x2c]
add edx, edx
add edx, edx
cmp dword [edx + eax], 0
je 0x1018c6f8
mov eax, dword [edi + 0x5c]
mov ecx, dword [edi + 0x4c]
mov ecx, dword [eax + ecx*4]
mov ebx, dword [edi + 0x50]
mov eax, dword [edi + 0x68]
mov edx, dword [edx + ebx]
mov ebx, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
cmp eax, dword [ebx + edx*4]
je 0x1018c6f0
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 0x1018c58d
mov eax, dword [esp + 0x18]
push eax
mov ecx, esi
call fcn.100ea3e0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
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 0x1018c5c2
mov eax, dword [esi + 8]
and ah, 0xf7
or ah, 4
mov dword [esi + 8], eax
mov ebx, dword [esp + 0x14]
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 + 0x44], eax
mov eax, dword [ebp]
push ecx
mov ecx, ebp
call dword [eax + 0x18]
mov ecx, dword [esp + 0x44]
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 + 0x44], eax
mov eax, dword [ebp]
push ecx
mov ecx, ebp
call dword [eax + 0x18]
mov ecx, dword [esp + 0x44]
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 + 0x48]
push edx
mov ecx, ebp
call fcn.10142640
mov eax, dword [eax]
jmp 0x1018c7ef
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
call dword [edx + 0xc]
test byte [eax + 0x14], 0x80
je 0x1018c7f3
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 0x1018c749
mov edx, dword [edi + 0x64]
mov edx, dword [edx + eax*4]
and edx, dword [ecx + eax*4]
test dl, 2
je 0x1018c749
mov edx, dword [edi + 0x64]
mov edx, dword [edx + eax*4]
and edx, dword [ecx + eax*4]
test dl, 4
je 0x1018c749
mov edx, dword [edi + 0x64]
mov edx, dword [edx + eax*4]
and edx, dword [ecx + eax*4]
test dl, 8
jne 0x1018c7f3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x18]
and ecx, 0xffffff81
or ecx, 1
mov dword [esi + 8], ecx
push edx
mov ecx, esi
call fcn.100ea3e0
and dword [esi + 0xc], 0x600fffe0
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x5c]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x18]
mov ecx, dword [edi + 0x58]
mov edx, dword [ebp]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x4c]
mov eax, dword [ecx + eax*4]
add eax, 0xffffffff
push eax
mov ecx, ebp
call dword [edx + 0x18]
add eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
and eax, 0xff
or eax, 0x30000
and ecx, 0xfffffc3f
shl eax, 5
and edx, 0xfe7f600f
or ecx, 0x20
or eax, edx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], eax
cmp dword [ebp + 0x1c], 0
je 0x1018c7ea
push 0x10
lea eax, [esi + 8]
push eax
lea eax, [esp + 0x4c]
push eax
mov ecx, ebp
call fcn.100fd200
mov eax, dword [eax]
jmp 0x1018c7ef
mov eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x78]
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x18]
mov ecx, dword [esp + 0x10]
test cl, 1
mov dword [esp + 0x30], eax
je 0x1018cf38
cmp dword [edi + 0x90], 1
jbe 0x1018c830
mov eax, dword [edi + 0x8c]
mov edx, dword [eax]
shr edx, 1
and dl, 1
mov byte [esp + 0x44], dl
jne 0x1018cab1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x18]
and ecx, 0xffffff81
or ecx, 1
mov dword [esi + 8], ecx
push edx
mov ecx, esi
call fcn.100ea3e0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi + 8]
mov eax, ebx
sar eax, 1
and eax, 1
shl eax, 0x10
and ecx, 3
or eax, ecx
add eax, eax
add eax, eax
add eax, eax
and ebx, 1
or eax, ebx
shl eax, 9
and edx, 0xefffcdff
or eax, edx
mov dword [esi + 8], eax
cmp byte [edi + 0x98], 0
je 0x1018c931
movzx ebx, byte [edi + 0x99]
mov ecx, dword [edi + 0x54]
mov edx, dword [ecx]
shl ebx, 0x14
xor ebx, eax
and ebx, 0x100000
xor ebx, eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], edx
mov dword [esi + 8], ebx
call fcn.10056ca0
test al, al
je 0x1018c903
mov eax, dword [esp + 0x44]
and eax, 3
cmp eax, 3
ja case.default.0x1018c8c4
jmp dword [eax*4 + 0x1018cf48]
and ebx, 0xfff2ffff
or ebx, 0x20000
jmp 0x1018c90f
and ebx, 0xfff3ffff
or ebx, 0x30000
jmp 0x1018c90f
and ebx, 0xfff4ffff
or ebx, 0x40000
jmp 0x1018c90f
and ebx, 0xfff5ffff
or ebx, 0x50000
jmp 0x1018c90f
and ebx, 0xfff1ffff
or ebx, 0x10000
mov dword [esi + 8], ebx
mov eax, dword [edi + 0x50]
mov ecx, dword [eax]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*4]
sub eax, 0
je 0x1018c92d
sub eax, 1
jne 0x1018c931
or byte [esi + 0x13], 2
jmp 0x1018c931
and byte [esi + 0x13], 0xfd
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
push eax
push 0
add ecx, 1
push ecx
push 2
mov ecx, esi
call fcn.10142680
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0x50]
mov ecx, dword [eax + edx*4 + 4]
mov edx, dword [edi + 0x34]
mov ebx, dword [edx + ecx*4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 4]
mov edx, dword [ebp]
mov dword [esp + 0x44], ecx
push ebx
mov ecx, ebp
call dword [edx + 0x1c]
add eax, dword [esp + 0x44]
push ebx
mov dword [esp + 0x48], eax
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
movzx ecx, byte [edi + 0x9b]
shl ecx, 0xe
xor ecx, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
and ecx, 0x4000
xor dword [esi + 0x10], ecx
mov cl, byte [edi + 0x9f]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x40]
and eax, 0xff
and edx, 7
shl edx, 7
and ecx, 1
or ch, 3
and ebx, 0xfffffc3f
or edx, ebx
or edx, 0x20
mov dword [esi + 0xc], edx
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 5
and eax, 0xfe7f401f
mov ebx, ecx
mov ecx, dword [esp + 0x40]
or ebx, eax
mov eax, dword [esp + 0x44]
push eax
push ecx
mov dword [esi + 0x10], ebx
call fcn.100ea390
mov ecx, ebx
xor ecx, eax
and ecx, 0x10
xor ecx, ebx
mov dword [esi + 0x10], ecx
mov eax, dword [edi + 0x54]
mov edx, dword [edi + 0x44]
mov edx, dword [eax + edx*4 + 4]
mov ebx, edx
shr ebx, 4
and ebx, 3
mov ebx, dword [ebx*4 + 0x10214474]
mov dword [esp + 0x4c], ebx
mov eax, edx
shr eax, 6
mov ebx, edx
shr ebx, 2
and eax, 3
mov eax, dword [eax*4 + 0x10214474]
add esp, 8
and ebx, 3
mov ebx, dword [ebx*4 + 0x10214474]
and eax, 3
and edx, 3
mov edx, dword [edx*4 + 0x10214474]
add eax, eax
add eax, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x44]
and edx, 3
or eax, edx
mov edx, dword [esp + 0x10]
shl eax, 0xe
and ebx, 3
or eax, ebx
add eax, eax
add eax, eax
and edx, 3
and ecx, 0xfff0fff0
or eax, edx
or eax, ecx
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x3c]
cmp byte [ecx + 1], 0
je 0x1018ca86
and eax, 0xfe1fffff
mov dword [esi + 0x10], eax
cmp dword [ebp + 0x1c], 0
je 0x1018caa2
push 0x10
lea eax, [esi + 8]
push eax
lea edx, [esp + 0x4c]
push edx
mov ecx, ebp
call fcn.100fd200
mov eax, dword [eax]
jmp 0x1018caa7
mov eax, 2
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov ecx, eax
test cl, 1
je 0x1018cf38
mov edx, dword [esp + 0x24]
mov ecx, dword [ebp + 0x84]
mov eax, dword [ecx]
push 0
push edx
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x4c]
push edx
push 1
push 2
call dword [eax + 4]
mov dword [esp + 0x2c], 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 + 0x30]
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 + 0x1c]
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 0x1018cc08
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 0x1018cbda
mov ebx, edx
shr ebx, 4
and ebx, 3
cmp eax, ebx
jne 0x1018cbda
shr edx, 6
and edx, 3
cmp eax, edx
jne 0x1018cbda
cmp eax, 3
ja case.default.0x1018cb9b
jmp dword [eax*4 + 0x1018cf58]
and ecx, 0xfff2ffff
or ecx, 0x20000
jmp 0x1018cbe6
and ecx, 0xfff3ffff
or ecx, 0x30000
jmp 0x1018cbe6
and ecx, 0xfff4ffff
or ecx, 0x40000
jmp 0x1018cbe6
and ecx, 0xfff5ffff
or ecx, 0x50000
jmp 0x1018cbe6
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 0x1018cc04
sub eax, 1
jne 0x1018cc08
or byte [esi + 0x13], 2
jmp 0x1018cc08
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 + 0x44], eax
mov eax, dword [ebp]
push ebx
mov ecx, ebp
call dword [eax + 0x18]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
push ecx
push edx
push eax
push 1
mov ecx, esi
call fcn.10142680
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x64]
mov eax, dword [edx + ecx*4]
mov edx, dword [edx + ecx*4]
mov ebx, dword [edi + 0x60]
and edx, dword [ebx + ecx*4]
and eax, dword [ebx + ecx*4]
mov dword [esp + 0x44], edx
mov edx, dword [edi + 0x64]
mov edx, dword [edx + ecx*4]
and edx, dword [ebx + ecx*4]
shr eax, 3
mov dword [esp + 0x3c], edx
mov edx, dword [edi + 0x64]
mov edx, dword [edx + ecx*4]
and edx, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x44]
and eax, 1
shr ecx, 2
add eax, eax
and ecx, 1
or eax, ecx
mov ecx, dword [esp + 0x3c]
add eax, eax
shr ecx, 1
and ecx, 1
or eax, ecx
mov ecx, dword [esi + 0xc]
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 0x1018ccfc
mov edx, dword [edi + 0x8c]
mov cl, byte [edx]
and cl, 1
mov byte [esp + 0x44], cl
je 0x1018ccfc
mov ecx, dword [esp + 0x40]
mov edx, ecx
and edx, 7
shl edx, 7
and eax, 0xfffffc1f
or edx, eax
push 0
push ecx
mov dword [esi + 0xc], edx
call fcn.100ea390
mov ecx, dword [esi + 0x10]
and eax, 0x10
and ecx, 0xfe7f600f
or eax, ecx
add esp, 8
or eax, 0x600000
jmp 0x1018ce32
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0x50]
mov ecx, dword [eax + edx*4]
mov edx, dword [edi + 0x34]
mov ebx, dword [edx + ecx*4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax]
mov edx, dword [ebp]
mov dword [esp + 0x44], ecx
push ebx
mov ecx, ebp
call dword [edx + 0x1c]
add eax, dword [esp + 0x44]
push ebx
mov dword [esp + 0x48], eax
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
movzx ecx, byte [edi + 0x9a]
shl ecx, 0xe
xor ecx, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
and ecx, 0x4000
xor dword [esi + 0x10], ecx
mov cl, byte [edi + 0x9e]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x40]
and eax, 0xff
and edx, 7
shl edx, 7
and ecx, 1
or ch, 3
and ebx, 0xfffffc3f
or edx, ebx
or edx, 0x20
mov dword [esi + 0xc], edx
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x3c]
shl ecx, 5
and eax, 0xfe7f401f
mov ebx, ecx
mov ecx, dword [esp + 0x40]
or ebx, eax
mov eax, dword [esp + 0x44]
push eax
push ecx
mov dword [esi + 0x10], ebx
call fcn.100ea390
mov ecx, ebx
xor ecx, eax
and ecx, 0x10
xor ecx, ebx
mov dword [esi + 0x10], ecx
mov eax, dword [edi + 0x54]
mov edx, dword [edi + 0x44]
mov edx, dword [eax + edx*4]
mov ebx, edx
shr ebx, 4
and ebx, 3
mov ebx, dword [ebx*4 + 0x10214474]
mov eax, edx
shr eax, 6
mov dword [esp + 0x48], ebx
and eax, 3
mov eax, dword [eax*4 + 0x10214474]
mov ebx, edx
and edx, 3
mov edx, dword [edx*4 + 0x10214474]
and eax, 3
shr ebx, 2
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x48]
add eax, eax
and ebx, 3
mov ebx, dword [ebx*4 + 0x10214474]
add eax, eax
and edx, 3
add esp, 8
or eax, edx
mov edx, dword [esp + 0x44]
shl eax, 0xe
and ebx, 3
or eax, ebx
add eax, eax
add eax, eax
and edx, 3
and ecx, 0xfff0fff0
or eax, edx
or eax, ecx
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x3c]
cmp byte [ecx], 0
je 0x1018ce35
and eax, 0xfe1fffff
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x2c]
and ah, 0x8f
or ah, 0xc
mov dword [esi + 0x14], edx
mov dword [esi + 0xc], eax
cmp dword [ebp + 0x1c], 0
je 0x1018ce64
push 0x10
lea eax, [esi + 8]
push eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, ebp
call fcn.100fd200
mov eax, dword [eax]
jmp 0x1018ce69
mov eax, 2
mov ecx, eax
test cl, 1
mov dword [esp + 0x10], eax
je 0x1018cf38
cmp dword [edi + 0x48], 0
je 0x1018cf38
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
call dword [edx + 0xc]
test byte [eax + 0x16], 4
je 0x1018cf34
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]
mov edx, dword [edi + 0x68]
mov edi, dword [edx + ecx*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 + 0x48], 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 + 0x44]
and eax, 0xff
or eax, 0x30000
add ecx, ecx
shl eax, 5
add ecx, ecx
and edx, 0xfe7f600f
or eax, edx
and ecx, 0x10
or eax, ecx
mov dword [esi + 0x10], eax
push ebx
lea eax, [esp + 0x44]
push eax
mov ecx, ebp
call fcn.10142640
mov eax, dword [eax]
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
mov dword [ecx], eax
mov eax, ecx
pop ebx
add esp, 0x24
ret 0x10
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x24
ret 0x10