Function at 0x100213b0
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 ebx, edx
mov dword [esp + 0x88], ebx
mov edx, ecx
mov dword [esp + 0x18], edx
push edi
cmp esi, 0xa
jb 0x100217fd
mov ecx, dword [ebp + 0x10]
lea eax, [edx + ebx]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
lea edi, [ecx + 4]
mov dword [esp + 0xc], edi
movzx edi, word [eax]
mov dword [esp + 0x84], edi
movzx edi, word [eax + 2]
mov dword [esp + 0x10], edi
movzx edi, word [eax + 4]
sub esi, edi
mov dword [esp + 0x2c], edi
movzx edi, word [eax]
add eax, 6
sub esi, dword [esp + 0x10]
mov dword [esp + 0x28], eax
sub esi, edi
add edi, eax
sub esi, 6
mov eax, dword [esp + 0x10]
add eax, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], eax
lea edi, [ecx + 4]
lea eax, [ebx + 3]
shr eax, 2
add edx, eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x14], edx
lea ebx, [edx + eax]
add eax, ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], ebx
mov ebx, eax
mov eax, dword [ecx]
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], eax
cmp esi, dword [ebp + 0xc]
ja 0x100217fd
push dword [esp + 0x84]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x48]
call fcn.10020800
add esp, 4
cmp eax, 0xffffff88
ja 0x10021802
push dword [esp + 0x10]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x58]
call fcn.10020800
add esp, 4
cmp eax, 0xffffff88
ja 0x10021802
push dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x68]
call fcn.10020800
add esp, 4
cmp eax, 0xffffff88
ja 0x10021802
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x74]
mov edx, dword [esp + 0x30]
push esi
lea edx, [edx + eax]
call fcn.10020800
add esp, 4
cmp eax, 0xffffff88
ja 0x10021802
lea ecx, [esp + 0x74]
call fcn.10018960
lea ecx, [esp + 0x64]
mov esi, eax
call fcn.10018960
lea ecx, [esp + 0x54]
or esi, eax
call fcn.10018960
lea ecx, [esp + 0x44]
or esi, eax
call fcn.10018960
or esi, eax
jne 0x100216f4
mov eax, dword [esp + 0x40]
add eax, 0xfffffff9
mov dword [esp + 0x28], eax
cmp ebx, eax
jae 0x100216f4
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
neg edi
mov edx, dword [esp + 0x44]
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 + 0x78]
mov dword [esp + 0x10], edi
movzx eax, byte [ebx + edx*2 + 1]
add eax, dword [esp + 0x48]
mov dword [esp + 0x20], eax
movzx eax, byte [ebx + edx*2]
mov byte [ecx], al
inc ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x58]
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 + 0x64]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
and ecx, 0x1f
add ebx, dword [esp + 0x58]
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 + 0x74]
add edi, dword [esp + 0x68]
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 + 0x44]
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 + 0x48], 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 + 0x54]
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 + 0x58], eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
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 + 0x68], eax
movzx eax, byte [edi + edx*2]
mov edx, dword [esp + 0x74]
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 + 0x74]
movzx eax, byte [edi + edx*2 + 1]
add eax, esi
mov dword [esp + 0x78], eax
movzx eax, byte [edi + edx*2]
mov byte [ebx], al
inc ebx
mov dword [esp + 0x24], ebx
call fcn.10018960
lea ecx, [esp + 0x64]
mov esi, eax
call fcn.10018960
lea ecx, [esp + 0x54]
or esi, eax
call fcn.10018960
lea ecx, [esp + 0x44]
or esi, eax
call fcn.10018960
or esi, eax
mov eax, dword [esp + 0x28]
je 0x10021527
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
cmp ecx, eax
ja 0x100217fd
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x14], edx
ja 0x100217fd
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x18], edx
ja 0x100217fd
mov esi, dword [esp + 0x34]
lea edx, [esp + 0x44]
push esi
push edi
push eax
call fcn.10019980
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x60]
add esp, 0xc
push esi
push edi
push dword [esp + 0x40]
call fcn.10019980
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x70]
add esp, 0xc
push esi
push edi
push dword [esp + 0x44]
call fcn.10019980
add esp, 0xc
lea edx, [esp + 0x74]
mov ecx, ebx
push esi
push edi
push dword [esp + 0x48]
call fcn.10019980
mov eax, dword [esp + 0x58]
add esp, 0xc
cmp eax, dword [esp + 0x50]
jne 0x1002178e
cmp dword [esp + 0x48], 0x20
jne 0x1002178e
mov ecx, 1
jmp 0x10021790
xor ecx, ecx
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
jne 0x100217a8
cmp dword [esp + 0x58], 0x20
jne 0x100217a8
mov edx, 1
jmp 0x100217aa
xor edx, edx
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x70]
jne 0x100217c2
cmp dword [esp + 0x68], 0x20
jne 0x100217c2
mov esi, 1
jmp 0x100217c4
xor esi, esi
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x80]
jne 0x100217df
cmp dword [esp + 0x78], 0x20
jne 0x100217df
mov eax, 1
jmp 0x100217e1
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