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

Disassembly:
sub esp, 0xb4
push ebx
mov ebx, dword [esp + 0xc8]
cmp ebx, 0xa
jae 0x100be3c2
mov eax, 0xffffffec
pop ebx
add esp, 0xb4
ret 0x14
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
add eax, edx
mov dword [esp + 0x54], eax
lea eax, [ecx + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc4]
push ebp
push esi
push edi
movzx ebp, word [eax + 2]
mov edi, ebx
movzx esi, word [eax]
mov dword [esp + 0x10], ebp
movzx ebp, word [eax + 4]
add eax, 6
sub edi, ebp
mov dword [esp + 0x70], eax
sub edi, dword [esp + 0x10]
sub edi, esi
mov dword [esp + 0x2c], esi
add esi, eax
sub edi, 6
mov eax, dword [esp + 0x10]
add eax, esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xcc]
add eax, 3
shr eax, 2
add edx, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x30], edx
lea esi, [edx + eax]
add eax, esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x34], eax
mov eax, dword [ecx]
shr eax, 0x10
mov dword [esp + 0x24], esi
movzx esi, al
mov dword [esp + 0x68], esi
cmp edi, ebx
ja 0x100be8fb
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x5c], eax
ja 0x100be8fb
cmp dword [esp + 0xcc], 6
jb 0x100be8fb
push dword [esp + 0x2c]
lea eax, [esp + 0x78]
push dword [esp + 0x74]
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
ja 0x100bf7a2
push dword [esp + 0x10]
lea eax, [esp + 0xb4]
push dword [esp + 0x70]
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
ja 0x100bf7a2
mov ebx, dword [esp + 0x50]
lea eax, [esp + 0x88]
push ebp
push ebx
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
ja 0x100bf7a2
push edi
lea eax, [ebx + ebp]
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
ja 0x100bf7a2
mov edx, dword [esp + 0x60]
mov eax, edx
mov ecx, dword [esp + 0x5c]
sub eax, ecx
cmp eax, 4
jb 0x100be85b
lea eax, [edx - 3]
cmp ecx, eax
jae 0x100be85b
mov eax, dword [esp + 0x7c]
neg esi
mov edx, dword [esp + 0x74]
and esi, 0x1f
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0xb4]
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
jmp 0x100be58b
mov edx, dword [esp + 0x44]
mov ecx, ebx
mov eax, edx
mov edx, dword [esp + 0xc8]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x20]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 3]
movzx edx, byte [ecx + 2]
mov ecx, edi
add dword [esp + 0xc8], eax
and ecx, 0x1f
mov eax, dword [esp + 0x3c]
add edx, ebx
shl eax, cl
mov ecx, dword [esp + 0x20]
shr eax, cl
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x30]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [ebx], ax
movzx eax, byte [ecx + 2]
add edi, eax
movzx eax, byte [ecx + 3]
add ebx, eax
mov ecx, ebp
mov eax, dword [esp + 0x40]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x20]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x30], ebx
movzx eax, word [ecx]
mov ebx, dword [esp + 0x24]
mov word [ebx], ax
movzx eax, byte [ecx + 3]
movzx ebx, byte [ecx + 2]
mov ecx, esi
add dword [esp + 0x24], eax
and ecx, 0x1f
mov eax, dword [esp + 0x48]
add ebx, ebp
mov ebp, dword [esp + 0x34]
shl eax, cl
mov ecx, dword [esp + 0x20]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [ebp], ax
movzx eax, byte [ecx + 3]
movzx ebp, byte [ecx + 2]
mov ecx, edx
add dword [esp + 0x34], eax
and ecx, 0x1f
mov eax, dword [esp + 0x44]
add ebp, esi
mov esi, dword [esp + 0xc8]
shl eax, cl
mov ecx, dword [esp + 0x20]
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [esi], ax
movzx eax, byte [ecx + 2]
add eax, edx
mov dword [esp + 0x18], eax
movzx eax, byte [ecx + 3]
mov ecx, edi
add esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc8], esi
and ecx, 0x1f
mov esi, dword [esp + 0x14]
shl eax, cl
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
shr eax, cl
lea ecx, [esi + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add eax, edi
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + 3]
mov ecx, ebx
add edx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x40]
shl eax, cl
mov ecx, dword [esp + 0x20]
shr eax, cl
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x24]
lea ecx, [esi + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add eax, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
movzx eax, byte [ecx + 3]
mov ecx, ebp
add edx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x48]
shl eax, cl
mov ecx, dword [esp + 0x20]
shr eax, cl
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x34]
lea ecx, [esi + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx esi, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add esi, ebp
mov ecx, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x34], edx
cmp ecx, dword [esp + 0x84]
jae 0x100be73f
mov dword [esp + 0x2c], 3
jmp 0x100be75f
mov eax, ebx
mov dword [esp + 0x2c], 0
shr eax, 3
sub ecx, eax
and ebx, 7
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], ebx
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x1c]
cmp ecx, dword [esp + 0xc0]
jae 0x100be77a
mov dword [esp + 0x70], 3
jmp 0x100be79a
mov eax, edi
mov dword [esp + 0x70], 0
shr eax, 3
sub ecx, eax
and edi, 7
mov dword [esp + 0x54], ecx
mov dword [esp + 0x1c], edi
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x28]
cmp ecx, dword [esp + 0x98]
jae 0x100be7b5
mov dword [esp + 0x6c], 3
jmp 0x100be7d5
mov eax, ebp
mov dword [esp + 0x6c], 0
shr eax, 3
sub ecx, eax
and ebp, 7
mov dword [esp + 0x58], ecx
mov dword [esp + 0x28], ebp
mov eax, dword [ecx]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0xac]
jae 0x100be7ec
mov dword [esp + 0x10], 3
jmp 0x100be808
mov eax, esi
mov dword [esp + 0x10], 0
shr eax, 3
sub ecx, eax
and esi, 7
mov dword [esp + 0x50], ecx
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
add eax, 0xfffffffd
cmp edx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
xor edx, edx
and ecx, eax
cmp dword [esp + 0x6c], edx
cmove edx, ecx
xor eax, eax
cmp dword [esp + 0x70], eax
sete al
and edx, eax
xor eax, eax
cmp dword [esp + 0x2c], eax
cmove eax, edx
test eax, eax
jne 0x100be587
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
jmp 0x100be8d6
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0xb4]
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0xc8], eax
ja 0x100be8fb
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x30], eax
ja 0x100be8fb
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
jbe 0x100be90d
pop edi
pop esi
pop ebp
mov eax, 0xffffffec
pop ebx
add esp, 0xb4
ret 0x14
sub eax, dword [esp + 0xc8]
cmp eax, 4
mov eax, dword [esp + 0x80]
jb 0x100bea56
mov edi, dword [esp + 0xc8]
nop dword [eax + eax]
cmp edx, 0x20
jbe 0x100be93c
mov ebx, 3
jmp 0x100be9b1
cmp ecx, dword [esp + 0x84]
jb 0x100be959
mov eax, edx
and edx, 7
shr eax, 3
sub ecx, eax
mov ebx, dword [ecx]
mov dword [esp + 0x44], ebx
xor ebx, ebx
jmp 0x100be9a9
cmp ecx, eax
jne 0x100be96d
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
mov ebx, eax
jmp 0x100be9b1
mov ebx, edx
mov dword [esp + 0x10], 0
shr ebx, 3
mov eax, ecx
sub eax, ebx
cmp eax, dword [esp + 0x80]
jae 0x100be998
mov ebx, ecx
mov dword [esp + 0x10], 1
sub ebx, dword [esp + 0x80]
imul eax, ebx, 0xfffffff8
sub ecx, ebx
mov ebx, dword [esp + 0x10]
add edx, eax
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x4c]
add eax, 0xfffffffd
cmp edi, eax
sbb ecx, ecx
xor eax, eax
neg ecx
test ebx, ebx
sete al
test eax, ecx
je 0x100beac0
mov eax, dword [esp + 0x44]
mov ecx, edx
and ecx, 0x1f
mov ebx, esi
shl eax, cl
neg ebx
and ebx, 0x1f
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*4]
movzx eax, word [edx]
mov word [edi], ax
movzx edi, byte [edx + 2]
movzx eax, byte [edx + 3]
add edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc8]
mov ecx, edi
add edx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x44]
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov dword [esp + 0xc8], edx
movzx eax, word [ecx]
mov word [edx], ax
movzx edx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add edx, edi
mov edi, dword [esp + 0xc8]
mov ecx, dword [esp + 0x38]
add edi, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], edx
mov dword [esp + 0xc8], edi
jmp 0x100be930
cmp edx, 0x20
ja 0x100beac8
cmp ecx, dword [esp + 0x84]
jb 0x100bea7e
mov eax, edx
shr eax, 3
sub ecx, eax
and edx, 7
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [ecx]
mov dword [esp + 0x44], ecx
jmp 0x100beac8
cmp ecx, eax
je 0x100beac8
mov eax, edx
shr eax, 3
mov dword [esp + 0x2c], eax
mov eax, ecx
sub eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x80]
jae 0x100beaa5
mov eax, ecx
sub eax, dword [esp + 0x80]
jmp 0x100beaa9
mov eax, dword [esp + 0x2c]
sub ecx, eax
imul eax, eax, 0xfffffff8
mov dword [esp + 0x38], ecx
add edx, eax
mov eax, dword [ecx]
mov dword [esp + 0x18], edx
mov dword [esp + 0x44], eax
jmp 0x100beac8
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov eax, ecx
sub eax, dword [esp + 0xc8]
cmp eax, 2
jb 0x100bec62
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0xc8]
mov ebp, dword [esp + 0x14]
nop dword [eax]
cmp edx, 0x20
jbe 0x100beb02
mov dword [esp + 0x38], 3
jmp 0x100beb83
cmp edi, dword [esp + 0x84]
jb 0x100beb1f
mov eax, edx
mov dword [esp + 0x38], 0
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x100beb79
cmp edi, dword [esp + 0x80]
jne 0x100beb43
mov eax, esi
cmp edx, 0x20
jae 0x100beb39
mov dword [esp + 0x38], 1
jmp 0x100beb85
mov dword [esp + 0x38], 2
jmp 0x100beb85
mov ecx, edx
mov dword [esp + 0x38], 0
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, dword [esp + 0x80]
jae 0x100beb6e
mov ecx, edi
mov dword [esp + 0x38], 1
sub ecx, dword [esp + 0x80]
imul eax, ecx, 0xfffffff8
sub edi, ecx
mov ecx, dword [esp + 0x4c]
add edx, eax
mov eax, dword [edi]
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], edx
mov eax, esi
neg eax
mov dword [esp + 0x10], eax
lea eax, [ecx - 2]
cmp eax, ebx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x38], eax
sete al
test eax, ecx
je 0x100bebd9
mov ecx, edx
mov edx, dword [esp + 0x44]
and ecx, 0x1f
shl edx, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x4c]
mov ax, word [ebp + edx*4]
mov word [ebx], ax
movzx eax, byte [ebp + edx*4 + 2]
add dword [esp + 0x18], eax
movzx eax, byte [ebp + edx*4 + 3]
mov edx, dword [esp + 0x18]
add ebx, eax
jmp 0x100beaf0
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x28]
add eax, 0xfffffffe
mov dword [esp + 0xc8], ebx
cmp ebx, eax
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x1c]
ja 0x100bec62
and dword [esp + 0x10], 0x1f
mov edi, dword [esp + 0xc8]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
mov ecx, edx
mov eax, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [eax*4]
mov ax, word [ecx + ebp]
mov word [edi], ax
movzx eax, byte [ecx + ebp + 2]
add edx, eax
movzx eax, byte [ecx + ebp + 3]
add edi, eax
mov eax, dword [esp + 0x4c]
add eax, 0xfffffffe
cmp edi, eax
jbe 0x100bec13
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xc8], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0xc8], eax
jae 0x100becd0
mov eax, dword [esp + 0x44]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
lea ebp, [eax + ecx*4]
mov al, byte [eax + ecx*4]
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x2c], ebp
mov byte [ecx], al
mov eax, ebp
mov ebp, dword [esp + 0x28]
cmp byte [eax + 3], 1
jne 0x100becb6
movzx eax, byte [eax + 2]
add edx, eax
jmp 0x100beccc
cmp edx, 0x20
jae 0x100becd0
movzx eax, byte [eax + 2]
add edx, eax
mov eax, 0x20
cmp edx, 0x20
cmova edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
sub eax, ecx
cmp eax, 4
mov eax, dword [esp + 0xbc]
jb 0x100bee00
mov edx, ecx
nop dword [eax]
cmp edi, 0x20
jbe 0x100becfc
mov ebx, 3
jmp 0x100bed6f
mov ecx, dword [esp + 0x54]
cmp ecx, dword [esp + 0xc0]
jb 0x100bed17
mov eax, edi
and edi, 7
shr eax, 3
sub ecx, eax
xor ebx, ebx
jmp 0x100bed61
cmp ecx, eax
jne 0x100bed2b
cmp edi, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
mov ebx, eax
jmp 0x100bed6f
mov ebx, edi
mov dword [esp + 0x10], 0
shr ebx, 3
mov eax, ecx
sub eax, ebx
cmp eax, dword [esp + 0xbc]
jae 0x100bed56
mov ebx, ecx
mov dword [esp + 0x10], 1
sub ebx, dword [esp + 0xbc]
imul eax, ebx, 0xfffffff8
sub ecx, ebx
mov ebx, dword [esp + 0x10]
add edi, eax
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x64]
add eax, 0xfffffffd
cmp edx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
test ebx, ebx
sete al
test eax, ecx
je 0x100bee6e
mov eax, dword [esp + 0x3c]
mov ecx, edi
and ecx, 0x1f
mov ebx, esi
shl eax, cl
neg ebx
and ebx, 0x1f
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0x30]
movzx eax, word [edx]
mov word [ecx], ax
movzx eax, byte [edx + 2]
add edi, eax
movzx eax, byte [edx + 3]
mov edx, ecx
mov ecx, edi
add edx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x3c]
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add eax, edi
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + 3]
mov edi, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x30], edx
jmp 0x100becf0
cmp edi, 0x20
ja 0x100bee7a
mov ecx, dword [esp + 0x54]
cmp ecx, dword [esp + 0xc0]
jb 0x100bee2c
mov eax, edi
shr eax, 3
sub ecx, eax
and edi, 7
mov dword [esp + 0x54], ecx
mov dword [esp + 0x1c], edi
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
jmp 0x100bee76
cmp ecx, eax
je 0x100bee76
mov eax, edi
shr eax, 3
mov dword [esp + 0x2c], eax
mov eax, ecx
sub eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0xbc]
jae 0x100bee53
mov eax, ecx
sub eax, dword [esp + 0xbc]
jmp 0x100bee57
mov eax, dword [esp + 0x2c]
sub ecx, eax
imul eax, eax, 0xfffffff8
mov dword [esp + 0x54], ecx
add edi, eax
mov eax, dword [ecx]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], eax
jmp 0x100bee76
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x64]
sub eax, ecx
cmp eax, 2
jb 0x100beff1
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
cmp edi, 0x20
jbe 0x100beea4
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x4c], 3
jmp 0x100bef19
cmp ebx, dword [esp + 0xc0]
jb 0x100beec1
mov eax, edi
mov dword [esp + 0x4c], 0
shr eax, 3
sub ebx, eax
and edi, 7
jmp 0x100bef13
mov ebp, dword [esp + 0xbc]
cmp ebx, ebp
jne 0x100beeeb
mov ebp, dword [esp + 0x3c]
mov eax, esi
cmp edi, 0x20
jae 0x100beee1
mov dword [esp + 0x4c], 1
jmp 0x100bef1b
mov dword [esp + 0x4c], 2
jmp 0x100bef1b
mov ecx, edi
mov dword [esp + 0x4c], 0
shr ecx, 3
mov eax, ebx
sub eax, ecx
cmp eax, ebp
jae 0x100bef0c
mov ecx, ebx
mov dword [esp + 0x4c], 1
sub ecx, ebp
imul eax, ecx, 0xfffffff8
sub ebx, ecx
add edi, eax
mov ebp, dword [ebx]
mov dword [esp + 0x3c], ebp
mov eax, esi
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
add eax, 0xfffffffe
cmp eax, edx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x4c], eax
sete al
test eax, ecx
je 0x100bef79
mov ecx, edi
mov edx, ebp
mov ebp, dword [esp + 0x14]
and ecx, 0x1f
shl edx, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x30]
mov ax, word [ebp + edx*4]
mov word [ecx], ax
mov ecx, ebp
movzx eax, byte [ecx + edx*4 + 2]
add edi, eax
movzx eax, byte [ecx + edx*4 + 3]
mov edx, dword [esp + 0x30]
add edx, eax
mov dword [esp + 0x30], edx
jmp 0x100bee91
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x28]
add eax, 0xfffffffe
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
cmp edx, eax
ja 0x100befed
and dword [esp + 0x10], 0x1f
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x3c]
mov ecx, edi
mov eax, esi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
shr eax, cl
lea ecx, [eax*4]
mov ax, word [ecx + ebp]
mov word [edx], ax
movzx eax, byte [ecx + ebp + 2]
add edi, eax
movzx eax, byte [ecx + ebp + 3]
add edx, eax
mov eax, dword [esp + 0x64]
add eax, 0xfffffffe
cmp edx, eax
jbe 0x100befa5
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x30], eax
jae 0x100bf059
mov eax, dword [esp + 0x3c]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
lea esi, [eax + ecx*4]
mov al, byte [eax + ecx*4]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], esi
mov byte [ecx], al
mov eax, esi
mov esi, dword [esp + 0x68]
cmp byte [eax + 3], 1
jne 0x100bf03f
movzx eax, byte [eax + 2]
add edi, eax
jmp 0x100bf055
cmp edi, 0x20
jae 0x100bf059
movzx eax, byte [eax + 2]
add edi, eax
mov eax, 0x20
cmp edi, 0x20
cmova edi, eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x24]
sub eax, ecx
cmp eax, 4
mov eax, dword [esp + 0x94]
jb 0x100bf174
mov edx, ecx
cmp ebp, 0x20
jbe 0x100bf085
mov edi, dword [esp + 0x40]
mov ebx, 3
jmp 0x100bf0e9
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x98]
jb 0x100bf0a0
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
xor ebx, ebx
jmp 0x100bf0db
cmp ecx, eax
jne 0x100bf0b2
mov edi, dword [esp + 0x40]
cmp ebp, 0x20
sbb ebx, ebx
add ebx, 2
jmp 0x100bf0e9
mov edi, ebp
mov eax, ecx
shr edi, 3
xor ebx, ebx
sub eax, edi
cmp eax, dword [esp + 0x94]
jae 0x100bf0d4
mov edi, ecx
mov ebx, 1
sub edi, dword [esp + 0x94]
imul eax, edi, 0xfffffff8
sub ecx, edi
add ebp, eax
mov edi, dword [ecx]
mov dword [esp + 0x40], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x5c]
add eax, 0xfffffffd
cmp edx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
test ebx, ebx
sete al
test eax, ecx
je 0x100bf1e2
mov ecx, ebp
mov ebx, esi
and ecx, 0x1f
neg ebx
mov eax, edi
and ebx, 0x1f
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0x24]
movzx eax, word [edx]
mov word [ecx], ax
movzx edi, byte [edx + 2]
movzx eax, byte [edx + 3]
add edi, ebp
mov edx, ecx
mov ecx, edi
add edx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x40]
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx ebp, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add ebp, edi
add edx, eax
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x94]
mov dword [esp + 0x24], edx
jmp 0x100bf075
cmp ebp, 0x20
ja 0x100bf1f2
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x98]
jb 0x100bf1a0
mov eax, ebp
shr eax, 3
sub ecx, eax
and ebp, 7
mov dword [esp + 0x58], ecx
mov dword [esp + 0x28], ebp
mov eax, dword [ecx]
mov dword [esp + 0x40], eax
jmp 0x100bf1ee
cmp ecx, eax
je 0x100bf1ee
mov eax, ebp
shr eax, 3
mov dword [esp + 0x2c], eax
mov eax, ecx
sub eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x94]
jae 0x100bf1c7
mov eax, ecx
sub eax, dword [esp + 0x94]
jmp 0x100bf1cb
mov eax, dword [esp + 0x2c]
sub ecx, eax
imul eax, eax, 0xfffffff8
mov dword [esp + 0x58], ecx
add ebp, eax
mov eax, dword [ecx]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x40], eax
jmp 0x100bf1ee
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x5c]
sub eax, ecx
cmp eax, 2
jb 0x100bf355
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x24]
nop dword [eax]
cmp ebp, 0x20
jbe 0x100bf21c
mov edi, 3
jmp 0x100bf280
cmp ebx, dword [esp + 0x98]
jb 0x100bf233
mov eax, ebp
and ebp, 7
shr eax, 3
sub ebx, eax
xor edi, edi
jmp 0x100bf27a
cmp ebx, dword [esp + 0x94]
jne 0x100bf251
mov eax, esi
cmp ebp, 0x20
jae 0x100bf24a
mov edi, 1
jmp 0x100bf282
mov edi, 2
jmp 0x100bf282
mov ecx, ebp
mov eax, ebx
shr ecx, 3
xor edi, edi
sub eax, ecx
cmp eax, dword [esp + 0x94]
jae 0x100bf273
mov ecx, ebx
mov edi, 1
sub ecx, dword [esp + 0x94]
imul eax, ecx, 0xfffffff8
sub ebx, ecx
add ebp, eax
mov eax, dword [ebx]
mov dword [esp + 0x40], eax
mov eax, esi
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
add eax, 0xfffffffe
cmp eax, edx
sbb ecx, ecx
xor eax, eax
inc ecx
test edi, edi
sete al
test eax, ecx
je 0x100bf2df
mov edx, dword [esp + 0x40]
mov ecx, ebp
mov edi, dword [esp + 0x14]
and ecx, 0x1f
shl edx, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x24]
mov ax, word [edi + edx*4]
mov word [ecx], ax
mov ecx, edi
movzx eax, byte [ecx + edx*4 + 2]
add ebp, eax
movzx eax, byte [ecx + edx*4 + 3]
mov edx, dword [esp + 0x24]
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x100bf210
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x1c]
add eax, 0xfffffffe
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x28], ebp
cmp edx, eax
ja 0x100bf351
and dword [esp + 0x10], 0x1f
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x40]
nop dword [eax + eax]
mov ecx, ebp
mov eax, esi
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
add ebp, eax
movzx eax, byte [ecx + 3]
add edx, eax
mov eax, dword [esp + 0x5c]
add eax, 0xfffffffe
cmp edx, eax
jbe 0x100bf310
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x24], eax
jae 0x100bf3bd
mov eax, dword [esp + 0x40]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
lea esi, [eax + ecx*4]
mov al, byte [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], esi
mov byte [ecx], al
mov eax, esi
mov esi, dword [esp + 0x68]
cmp byte [eax + 3], 1
jne 0x100bf3a3
movzx eax, byte [eax + 2]
add ebp, eax
jmp 0x100bf3b9
cmp ebp, 0x20
jae 0x100bf3bd
movzx eax, byte [eax + 2]
add ebp, eax
mov eax, 0x20
cmp ebp, 0x20
cmova ebp, eax
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x34]
sub eax, ecx
cmp eax, 4
mov eax, dword [esp + 0xa8]
jb 0x100bf4f0
mov edx, ecx
nop dword [eax]
cmp ebx, 0x20
jbe 0x100bf3ec
mov edi, 3
jmp 0x100bf45f
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0xac]
jb 0x100bf407
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
xor edi, edi
jmp 0x100bf451
cmp ecx, eax
jne 0x100bf41b
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
mov edi, eax
jmp 0x100bf45f
mov edi, ebx
mov dword [esp + 0x10], 0
shr edi, 3
mov eax, ecx
sub eax, edi
cmp eax, dword [esp + 0xa8]
jae 0x100bf446
mov edi, ecx
mov dword [esp + 0x10], 1
sub edi, dword [esp + 0xa8]
imul eax, edi, 0xfffffff8
sub ecx, edi
mov edi, dword [esp + 0x10]
add ebx, eax
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x60]
add eax, 0xfffffffd
cmp edx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
je 0x100bf56b
mov edi, dword [esp + 0x20]
mov ebx, esi
mov eax, dword [esp + 0x48]
neg ebx
and ebx, 0x1f
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0x34]
movzx eax, word [edx]
mov word [ecx], ax
movzx eax, byte [edx + 2]
add edi, eax
movzx eax, byte [edx + 3]
mov edx, ecx
mov ecx, edi
add edx, eax
and ecx, 0x1f
mov eax, dword [esp + 0x48]
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, word [ecx]
mov word [edx], ax
movzx ebx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
add ebx, edi
add edx, eax
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x34], edx
jmp 0x100bf3e0
cmp ebx, 0x20
ja 0x100bf577
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0xac]
jb 0x100bf51c
mov eax, ebx
shr eax, 3
sub ecx, eax
and ebx, 7
mov dword [esp + 0x50], ecx
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
jmp 0x100bf573
cmp ecx, eax
je 0x100bf573
mov eax, ebx
shr eax, 3
mov dword [esp + 0x2c], eax
mov eax, ecx
sub eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0xa8]
jae 0x100bf554
mov eax, ecx
sub eax, dword [esp + 0xa8]
sub ecx, eax
imul eax, eax, 0xfffffff8
mov dword [esp + 0x50], ecx
add ebx, eax
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
jmp 0x100bf573
mov eax, dword [esp + 0x2c]
sub ecx, eax
imul eax, eax, 0xfffffff8
mov dword [esp + 0x50], ecx
add ebx, eax
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
jmp 0x100bf573
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x60]
sub eax, ecx
cmp eax, 2
jb 0x100bf6d0
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
nop
cmp ebx, 0x20
jbe 0x100bf59c
mov ebp, 3
jmp 0x100bf600
cmp edi, dword [esp + 0xac]
jb 0x100bf5b3
mov eax, ebx
and ebx, 7
shr eax, 3
sub edi, eax
xor ebp, ebp
jmp 0x100bf5fa
cmp edi, dword [esp + 0xa8]
jne 0x100bf5d1
mov eax, esi
cmp ebx, 0x20
jae 0x100bf5ca
mov ebp, 1
jmp 0x100bf602
mov ebp, 2
jmp 0x100bf602
mov ecx, ebx
mov eax, edi
shr ecx, 3
xor ebp, ebp
sub eax, ecx
cmp eax, dword [esp + 0xa8]
jae 0x100bf5f3
mov ecx, edi
mov ebp, 1
sub ecx, dword [esp + 0xa8]
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0x48], eax
mov eax, esi
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
add eax, 0xfffffffe
cmp eax, edx
sbb ecx, ecx
xor eax, eax
inc ecx
test ebp, ebp
sete al
test eax, ecx
je 0x100bf660
mov edx, dword [esp + 0x48]
mov ecx, ebx
mov ebp, dword [esp + 0x14]
and ecx, 0x1f
shl edx, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x34]
mov ax, word [ebp + edx*4]
mov word [ecx], ax
mov ecx, ebp
movzx eax, byte [ecx + edx*4 + 2]
add ebx, eax
movzx eax, byte [ecx + edx*4 + 3]
mov edx, dword [esp + 0x34]
add edx, eax
mov dword [esp + 0x34], edx
jmp 0x100bf590
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x28]
add eax, 0xfffffffe
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x1c]
cmp edx, eax
ja 0x100bf6cc
and dword [esp + 0x10], 0x1f
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
mov ecx, ebx
mov eax, esi
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
lea ecx, [eax*4]
mov ax, word [ecx + ebp]
mov word [edx], ax
movzx eax, byte [ecx + ebp + 2]
add ebx, eax
movzx eax, byte [ecx + ebp + 3]
add edx, eax
mov eax, dword [esp + 0x60]
add eax, 0xfffffffe
cmp edx, eax
jbe 0x100bf688
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x34], eax
jae 0x100bf729
mov eax, dword [esp + 0x48]
neg esi
mov ecx, ebx
and esi, 0x1f
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x34]
mov al, byte [esi]
mov byte [ecx], al
cmp byte [esi + 3], 1
jne 0x100bf713
movzx eax, byte [esi + 2]
add ebx, eax
jmp 0x100bf729
cmp ebx, 0x20
jae 0x100bf729
movzx eax, byte [esi + 2]
add ebx, eax
mov eax, 0x20
cmp ebx, 0x20
cmova ebx, eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x80]
jne 0x100bf740
cmp edx, 0x20
jne 0x100bf740
lea esi, [edx - 0x1f]
jmp 0x100bf742
xor esi, esi
mov eax, dword [esp + 0x54]
cmp eax, dword [esp + 0xbc]
jne 0x100bf759
cmp edi, 0x20
jne 0x100bf759
lea edx, [edi - 0x1f]
jmp 0x100bf75b
xor edx, edx
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x94]
jne 0x100bf772
cmp ebp, 0x20
jne 0x100bf772
lea ecx, [ebp - 0x1f]
jmp 0x100bf774
xor ecx, ecx
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0xa8]
jne 0x100bf78b
cmp ebx, 0x20
jne 0x100bf78b
lea eax, [ebx - 0x1f]
jmp 0x100bf78d
xor eax, eax
and eax, ecx
mov ecx, 0xffffffec
and eax, edx
test esi, eax
mov eax, dword [esp + 0xcc]
cmove eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret 0x14