Function at 0x10019bb0
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 0x10019ff0
lea eax, [ecx + edx]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x10]
lea edi, [eax + 2]
movzx eax, word [eax]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], edi
movzx ebx, word [eax]
mov dword [esp + 0x30], ebx
movzx ebx, word [eax + 2]
mov dword [esp + 0x10], ebx
movzx ebx, word [eax + 4]
mov dword [esp + 0x28], ebx
lea ebx, [eax + 6]
mov eax, dword [esp + 0x10]
sub esi, dword [esp + 0x28]
sub esi, dword [esp + 0x10]
mov dword [esp + 0x2c], ebx
add ebx, dword [esp + 0x30]
add eax, ebx
mov dword [esp + 0x20], ebx
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 ebx, 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 + 0x24], ebx
cmp esi, dword [ebp + 0xc]
ja 0x10019ff0
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x48]
push eax
call fcn.10018860
add esp, 4
cmp eax, 0xffffff88
ja 0x10019ff5
push dword [esp + 0x10]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x5c]
call fcn.10018860
add esp, 4
cmp eax, 0xffffff88
ja 0x10019ff5
push dword [esp + 0x28]
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x6c]
call fcn.10018860
add esp, 4
cmp eax, 0xffffff88
ja 0x10019ff5
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x78]
mov edx, dword [esp + 0x34]
push esi
lea edx, [edx + eax]
call fcn.10018860
add esp, 4
cmp eax, 0xffffff88
ja 0x10019ff5
lea ecx, [esp + 0x78]
call fcn.10018960
lea ecx, [esp + 0x68]
mov esi, eax
call fcn.10018960
lea ecx, [esp + 0x58]
or esi, eax
call fcn.10018960
lea ecx, [esp + 0x48]
or esi, eax
call fcn.10018960
or esi, eax
jne 0x10019ee4
mov eax, dword [esp + 0x44]
add eax, 0xfffffff9
mov dword [esp + 0x2c], eax
cmp ebx, eax
jae 0x10019ee4
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
neg edi
mov edx, dword [esp + 0x48]
and ecx, 0x1f
shl edx, cl
and edi, 0x1f
mov ebx, dword [esp + 0xc]
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x10], edi
movzx eax, byte [ebx + edx*2 + 1]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
movzx eax, byte [ebx + edx*2]
mov byte [ecx], al
inc ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0xc]
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [eax + edx*2]
movzx ebx, byte [ebx + edx*2 + 1]
mov byte [ecx], al
inc ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x6c]
and ecx, 0x1f
add ebx, dword [esp + 0x5c]
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0xc]
movzx edi, byte [ecx + edx*2 + 1]
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x78]
add edi, dword [esp + 0x6c]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, esi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + edx*2 + 1]
add esi, eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], ecx
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + eax*2 + 1]
add eax, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
movzx eax, byte [ecx + eax*2]
mov ecx, dword [esp + 0x1c]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x1c], ecx
mov ecx, ebx
mov edx, dword [esp + 0x58]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + edx*2 + 1]
add eax, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x5c], eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x68]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + edx*2 + 1]
add eax, edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
movzx eax, byte [edi + edx*2]
mov edx, dword [esp + 0x78]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, esi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
lea ecx, [esp + 0x78]
movzx eax, byte [edi + edx*2 + 1]
add eax, esi
mov dword [esp + 0x7c], eax
movzx eax, byte [edi + edx*2]
mov byte [ebx], al
inc ebx
mov dword [esp + 0x24], ebx
call fcn.10018960
lea ecx, [esp + 0x68]
mov esi, eax
call fcn.10018960
lea ecx, [esp + 0x58]
or esi, eax
call fcn.10018960
lea ecx, [esp + 0x48]
or esi, eax
call fcn.10018960
or esi, eax
mov eax, dword [esp + 0x2c]
je 0x10019d17
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
cmp ecx, eax
ja 0x10019ff0
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x14], edx
ja 0x10019ff0
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x18], edx
ja 0x10019ff0
mov esi, dword [esp + 0x38]
lea edx, [esp + 0x48]
push esi
push edi
push eax
call fcn.10019980
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x64]
add esp, 0xc
push esi
push edi
push dword [esp + 0x44]
call fcn.10019980
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x74]
add esp, 0xc
push esi
push edi
push dword [esp + 0x48]
call fcn.10019980
add esp, 0xc
lea edx, [esp + 0x78]
mov ecx, ebx
push esi
push edi
push dword [esp + 0x4c]
call fcn.10019980
mov eax, dword [esp + 0x5c]
add esp, 0xc
cmp eax, dword [esp + 0x54]
jne 0x10019f7e
cmp dword [esp + 0x4c], 0x20
jne 0x10019f7e
mov ecx, 1
jmp 0x10019f80
xor ecx, ecx
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x64]
jne 0x10019f98
cmp dword [esp + 0x5c], 0x20
jne 0x10019f98
mov edx, 1
jmp 0x10019f9a
xor edx, edx
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x74]
jne 0x10019fb2
cmp dword [esp + 0x6c], 0x20
jne 0x10019fb2
mov esi, 1
jmp 0x10019fb4
xor esi, esi
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x84]
jne 0x10019fd2
cmp dword [esp + 0x7c], 0x20
jne 0x10019fd2
mov eax, 1
jmp 0x10019fd4
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