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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x88], edx
mov dword [esp + 0x18], ecx
push edi
cmp esi, 0xa
jb 0x1001acd2
lea eax, [ecx + edx]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x10]
lea ebx, [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], ebx
movzx edi, word [eax]
mov dword [esp + 0x30], edi
movzx edi, word [eax + 2]
mov dword [esp + 0x10], edi
movzx edi, word [eax + 4]
mov dword [esp + 0x24], edi
lea edi, [eax + 6]
mov eax, dword [esp + 0x10]
sub esi, dword [esp + 0x24]
sub esi, dword [esp + 0x10]
mov dword [esp + 0x28], edi
add edi, dword [esp + 0x30]
add eax, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], eax
lea eax, [edx + 3]
shr eax, 2
add ecx, eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x14], ecx
lea edx, [ecx + eax]
add eax, edx
mov dword [esp + 0x3c], edx
mov edi, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
sub esi, eax
sub esi, 6
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edi
cmp esi, dword [ebp + 0xc]
ja 0x1001acd2
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x58]
push eax
call fcn.10018860
add esp, 4
cmp eax, 0xffffff88
ja 0x1001acd7
push dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x6c]
call fcn.10018860
add esp, 4
cmp eax, 0xffffff88
ja 0x1001acd7
push dword [esp + 0x24]
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x7c]
call fcn.10018860
add esp, 4
cmp eax, 0xffffff88
ja 0x1001acd7
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x48]
mov edx, dword [esp + 0x34]
push esi
lea edx, [edx + eax]
call fcn.10018860
add esp, 4
cmp eax, 0xffffff88
ja 0x1001acd7
lea ecx, [esp + 0x48]
call fcn.10018960
lea ecx, [esp + 0x78]
mov esi, eax
call fcn.10018960
lea ecx, [esp + 0x68]
or esi, eax
call fcn.10018960
lea ecx, [esp + 0x58]
or esi, eax
call fcn.10018960
or esi, eax
jne 0x1001abc3
mov eax, dword [esp + 0x44]
add eax, 0xfffffff9
mov dword [esp + 0x28], eax
cmp edi, eax
jae 0x1001abc3
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
neg esi
mov eax, dword [esp + 0x58]
and ecx, 0x1f
shl eax, cl
and esi, 0x1f
mov edi, dword [esp + 0x1c]
mov ecx, esi
shr eax, cl
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], esi
lea ecx, [ebx + eax*4]
movzx eax, word [ecx]
mov word [edi], ax
movzx eax, byte [ecx + 3]
movzx ebx, byte [ecx + 2]
add edi, eax
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x1c], edi
movzx eax, word [ecx]
mov edi, dword [esp + 0x14]
add ebx, dword [esp + 0x5c]
mov word [edi], ax
movzx eax, byte [ecx + 3]
movzx edi, byte [ecx + 2]
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
mov esi, dword [esp + 0x18]
shr eax, cl
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + eax*4]
add edi, dword [esp + 0x6c]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 3]
movzx esi, byte [ecx + 2]
add dword [esp + 0x18], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
mov ecx, dword [esp + 0xc]
add esi, dword [esp + 0x7c]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
mov edx, dword [esp + 0x4c]
add edx, eax
movzx eax, byte [ecx + 3]
add dword [esp + 0x20], eax
mov ecx, ebx
mov eax, dword [esp + 0x58]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
movzx eax, word [ecx + eax*4]
mov ecx, dword [esp + 0x1c]
mov word [ecx], ax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + ecx*4 + 2]
add eax, ebx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x68]
movzx eax, byte [eax + ecx*4 + 3]
mov ecx, edi
add dword [esp + 0x1c], eax
and ecx, 0x1f
shl ebx, cl
mov ecx, dword [esp + 0x10]
shr ebx, cl
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx + ebx*4]
mov ecx, dword [esp + 0x14]
mov word [ecx], ax
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + ebx*4 + 2]
add eax, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x6c], eax
movzx eax, byte [ecx + ebx*4 + 3]
mov ecx, esi
mov ebx, dword [esp + 0x78]
and ecx, 0x1f
add dword [esp + 0x14], eax
shl ebx, cl
mov ecx, dword [esp + 0x10]
shr ebx, cl
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx + ebx*4]
mov word [edi], ax
movzx eax, byte [ecx + ebx*4 + 2]
mov edi, dword [esp + 0x20]
add eax, esi
mov esi, ecx
mov dword [esp + 0x7c], eax
mov ecx, edx
and ecx, 0x1f
movzx eax, byte [esi + ebx*4 + 3]
mov ebx, dword [esp + 0x48]
add dword [esp + 0x18], eax
shl ebx, cl
mov ecx, dword [esp + 0x10]
shr ebx, cl
lea ecx, [esp + 0x48]
movzx eax, word [esi + ebx*4]
mov word [edi], ax
movzx eax, byte [esi + ebx*4 + 2]
add eax, edx
mov dword [esp + 0x4c], eax
movzx eax, byte [esi + ebx*4 + 3]
add edi, eax
mov dword [esp + 0x20], edi
call fcn.10018960
lea ecx, [esp + 0x78]
mov esi, eax
call fcn.10018960
lea ecx, [esp + 0x68]
or esi, eax
call fcn.10018960
lea ecx, [esp + 0x58]
or esi, eax
call fcn.10018960
mov ebx, dword [esp + 0xc]
or esi, eax
mov eax, dword [esp + 0x28]
je 0x1001a9c6
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
cmp ecx, eax
ja 0x1001acd2
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x3c]
ja 0x1001acd2
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x18], edx
ja 0x1001acd2
mov esi, dword [esp + 0x38]
lea edx, [esp + 0x58]
push esi
push ebx
push eax
call fcn.1001a6d0
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x74]
add esp, 0xc
push esi
push ebx
push dword [esp + 0x44]
call fcn.1001a6d0
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x84]
add esp, 0xc
push esi
push ebx
push dword [esp + 0x48]
call fcn.1001a6d0
add esp, 0xc
lea edx, [esp + 0x48]
mov ecx, edi
push esi
push ebx
push dword [esp + 0x4c]
call fcn.1001a6d0
mov eax, dword [esp + 0x6c]
add esp, 0xc
cmp eax, dword [esp + 0x64]
jne 0x1001ac60
cmp dword [esp + 0x5c], 0x20
jne 0x1001ac60
mov ecx, 1
jmp 0x1001ac62
xor ecx, ecx
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x74]
jne 0x1001ac7a
cmp dword [esp + 0x6c], 0x20
jne 0x1001ac7a
mov edx, 1
jmp 0x1001ac7c
xor edx, edx
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x84]
jne 0x1001ac9a
cmp dword [esp + 0x7c], 0x20
jne 0x1001ac9a
mov esi, 1
jmp 0x1001ac9c
xor esi, esi
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x54]
jne 0x1001acb4
cmp dword [esp + 0x4c], 0x20
jne 0x1001acb4
mov eax, 1
jmp 0x1001acb6
xor eax, eax
and eax, esi
and eax, edx
test ecx, eax
mov eax, dword [esp + 0x8c]
mov ecx, 0xffffffec
cmove eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffffec
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret