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

Disassembly:
mov edx, dword [esp + 0x10]
sub esp, 0x90
cmp edx, 0xa
jae 0x100bd3ad
mov eax, 0xffffffec
add esp, 0x90
ret 0x14
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x98]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xa4]
mov ebp, edx
add eax, edi
mov dword [esp + 0x14], 1
mov dword [esp + 0x90], eax
lea eax, [ecx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xac]
movzx ebx, word [eax + 2]
movzx esi, word [eax]
mov dword [esp + 0x28], ebx
movzx ebx, word [eax + 4]
add eax, 6
mov dword [esp + 0x2c], eax
sub ebp, ebx
sub ebp, dword [esp + 0x28]
add eax, esi
mov dword [esp + 0x18], eax
sub ebp, esi
add eax, dword [esp + 0x28]
sub ebp, 6
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa8]
add eax, 3
mov dword [esp + 0x38], ebx
shr eax, 2
mov dword [esp + 0x9c], esi
lea ebx, [eax + edi]
lea esi, [ebx + eax]
mov dword [esp + 0x94], ebx
lea edi, [esi + eax]
mov dword [esp + 0x34], esi
mov eax, dword [ecx]
shr eax, 0x10
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], esi
mov esi, edi
movzx ebx, al
mov dword [esp + 0x98], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x50], ebx
cmp ebp, edx
ja 0x100bd848
cmp edi, dword [esp + 0x90]
ja 0x100bd848
cmp dword [esp + 0xa8], 6
jb 0x100bd848
push dword [esp + 0x9c]
lea eax, [esp + 0x40]
push dword [esp + 0x30]
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
ja 0x100be388
push dword [esp + 0x28]
lea eax, [esp + 0x80]
push dword [esp + 0x1c]
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
ja 0x100be388
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x68]
push edi
push dword [esp + 0x34]
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
ja 0x100be388
mov eax, dword [esp + 0x30]
push ebp
add eax, edi
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.100bcbe0
cmp eax, 0xffffff88
ja 0x100be388
mov edx, dword [esp + 0x90]
mov ecx, esi
mov eax, edx
sub eax, ecx
cmp eax, 4
jb 0x100bd7f7
lea eax, [edx - 3]
cmp ecx, eax
jae 0x100bd7f7
mov edx, dword [esp + 0x40]
neg ebx
mov eax, dword [esp + 0x58]
and ebx, 0x1f
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
jmp 0x100bd548
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ecx, edx
mov edx, dword [esp + 0x3c]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x24]
shr edx, cl
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0xa4]
movzx eax, byte [eax + edx*2]
add edi, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + edx*2 + 1]
mov byte [ecx], al
inc ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xa4], ecx
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x24]
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2]
add ebx, eax
movzx eax, byte [ecx + edx*2 + 1]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x1c], ecx
mov ecx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x24]
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2]
add ebp, eax
movzx eax, byte [ecx + edx*2 + 1]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x54]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x2c]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x24]
shr edx, cl
mov ecx, dword [esp + 0x2c]
movzx eax, byte [eax + edx*2]
add ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], ecx
mov ecx, edi
and ecx, 0x1f
movzx eax, byte [eax + edx*2 + 1]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov eax, dword [esp + 0x3c]
shl eax, cl
mov ecx, dword [esp + 0x24]
shr eax, cl
movzx ecx, byte [edx + eax*2]
movzx eax, byte [edx + eax*2 + 1]
add ecx, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xa4]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xa4], ecx
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x24]
shr eax, cl
movzx edi, byte [edx + eax*2]
movzx eax, byte [edx + eax*2 + 1]
add edi, ebx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x80], edi
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], ecx
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x24]
shr eax, cl
mov ecx, dword [esp + 0x20]
movzx ebx, byte [edx + eax*2]
movzx eax, byte [edx + eax*2 + 1]
add ebx, ebp
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
and ecx, 0x1f
mov dword [esp + 0x30], ebx
shl eax, cl
mov ecx, dword [esp + 0x24]
shr eax, cl
mov ecx, edx
mov dword [esp + 0x6c], ebx
movzx ebp, byte [ecx + eax*2]
movzx eax, byte [ecx + eax*2 + 1]
add ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x58], ebp
cmp ecx, dword [esp + 0x4c]
jae 0x100bd6e2
mov ecx, 3
jmp 0x100bd704
mov edx, dword [esp + 0x18]
mov eax, edx
shr eax, 3
and edx, 7
sub ecx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x3c], eax
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x84]
cmove eax, dword [esp + 0x14]
mov dword [esp + 0x38], eax
cmp ecx, dword [esp + 0x8c]
jae 0x100bd728
mov ecx, 3
jmp 0x100bd74c
mov eax, edi
and edi, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], edi
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x7c], eax
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x70]
sete al
and eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
cmp ecx, dword [esp + 0x78]
jae 0x100bd76c
mov ecx, 3
jmp 0x100bd78a
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ebx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x68], eax
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x5c]
cmove eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
cmp ecx, dword [esp + 0x64]
jae 0x100bd7a8
mov ecx, 3
jmp 0x100bd7c6
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ebp
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x18]
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x14]
sete al
and ecx, eax
mov eax, dword [esp + 0x90]
add eax, 0xfffffffd
mov dword [esp + 0x14], ecx
cmp esi, eax
sbb eax, eax
test ecx, eax
jne 0x100bd540
mov dword [esp + 0x24], esi
jmp 0x100bd81a
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebp
mov ecx, dword [esp + 0xa4]
cmp ecx, dword [esp + 0x94]
ja 0x100bd848
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x1c], eax
ja 0x100bd848
mov eax, dword [esp + 0x98]
cmp dword [esp + 0x20], eax
mov eax, dword [esp + 0x94]
jbe 0x100bd85a
pop edi
pop esi
pop ebp
mov eax, 0xffffffec
pop ebx
add esp, 0x90
ret 0x14
sub eax, ecx
cmp eax, 3
mov eax, dword [esp + 0x48]
jle 0x100bd97c
mov ebx, dword [esp + 0x94]
add ebx, 0xfffffffd
mov dword [esp + 0x38], ebx
cmp edx, 0x20
jbe 0x100bd887
mov edi, dword [esp + 0x3c]
mov ebx, 3
jmp 0x100bd8ed
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x4c]
jb 0x100bd89f
mov eax, edx
and edx, 7
shr eax, 3
sub ecx, eax
xor ebx, ebx
jmp 0x100bd8d4
cmp ecx, eax
jne 0x100bd8b1
mov edi, dword [esp + 0x3c]
cmp edx, 0x20
sbb ebx, ebx
add ebx, 2
jmp 0x100bd8e6
mov edi, edx
mov eax, ecx
shr edi, 3
xor ebx, ebx
sub eax, edi
cmp eax, dword [esp + 0x48]
jae 0x100bd8cd
mov edi, ecx
mov ebx, 1
sub edi, dword [esp + 0x48]
imul eax, edi, 0xfffffff8
sub ecx, edi
add edx, eax
mov edi, dword [ecx]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0xa4]
cmp ecx, dword [esp + 0x38]
sbb ecx, ecx
xor eax, eax
neg ecx
test ebx, ebx
sete al
test eax, ecx
je 0x100bd9a7
mov ebx, dword [esp + 0x50]
mov ecx, edx
mov eax, dword [esp + 0x10]
and ecx, 0x1f
neg ebx
mov edx, edi
shl edx, cl
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0xa4]
movzx edi, byte [eax + edx*2]
movzx eax, byte [eax + edx*2 + 1]
add edi, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa4], ecx
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx edx, byte [ecx + eax*2]
movzx eax, byte [ecx + eax*2 + 1]
add edx, edi
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x40], edx
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0xa4], ecx
jmp 0x100bd877
cmp edx, 0x20
ja 0x100bd9b2
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x4c]
jb 0x100bd9d4
mov eax, edx
shr eax, 3
sub ecx, eax
and edx, 7
mov eax, dword [ecx]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
cmp edx, 0x20
jbe 0x100bda09
mov dword [esp + 0x14], 3
jmp 0x100bda81
cmp ecx, eax
je 0x100bd9ab
mov eax, edx
shr eax, 3
mov dword [esp + 0x14], eax
mov eax, ecx
sub eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x48]
jae 0x100bd9fc
mov eax, ecx
sub eax, dword [esp + 0x48]
sub ecx, eax
imul eax, eax, 0xfffffff8
add edx, eax
jmp 0x100bd995
mov eax, dword [esp + 0x14]
sub ecx, eax
imul eax, eax, 0xfffffff8
add edx, eax
jmp 0x100bd995
cmp ebp, dword [esp + 0x4c]
jb 0x100bda23
mov eax, edx
mov dword [esp + 0x14], 0
shr eax, 3
sub ebp, eax
and edx, 7
jmp 0x100bda6e
cmp ebp, eax
jne 0x100bda42
mov eax, ebx
cmp edx, 0x20
jae 0x100bda38
mov dword [esp + 0x14], 1
jmp 0x100bda83
mov dword [esp + 0x14], 2
jmp 0x100bda83
mov edi, edx
mov dword [esp + 0x14], 0
shr edi, 3
mov eax, ebp
sub eax, edi
cmp eax, dword [esp + 0x48]
jae 0x100bda67
mov edi, ebp
mov dword [esp + 0x14], 1
sub edi, dword [esp + 0x48]
imul eax, edi, 0xfffffff8
sub ebp, edi
add edx, eax
mov edi, dword [ebp]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x44], ebp
mov eax, ebx
neg eax
cmp ecx, dword [esp + 0x94]
mov dword [esp + 0x9c], eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x14], eax
sete al
test eax, ecx
je 0x100bdaea
mov ecx, edx
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x18]
movzx eax, byte [esi + edx*2]
add ecx, eax
mov al, byte [esi + edx*2 + 1]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xa4]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0xa4], ecx
jmp 0x100bd9c2
mov edi, dword [esp + 0xa4]
cmp edi, dword [esp + 0x94]
mov edi, dword [esp + 0x28]
jae 0x100bdb49
mov edi, dword [esp + 0x9c]
mov ebx, dword [esp + 0x3c]
and edi, 0x1f
mov ebp, dword [esp + 0xa4]
mov ecx, edx
mov edx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x18]
movzx eax, byte [esi + edx*2]
add ecx, eax
mov al, byte [esi + edx*2 + 1]
mov byte [ebp], al
mov edx, ecx
inc ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], ecx
cmp ebp, dword [esp + 0x94]
jb 0x100bdb13
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
sub ecx, edx
mov eax, dword [esp + 0x88]
cmp ecx, 3
jle 0x100bdc77
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
nop dword [eax + eax]
cmp edi, 0x20
jbe 0x100bdb7c
mov ebx, 3
jmp 0x100bdbe9
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x8c]
jb 0x100bdb9a
mov eax, edi
and edi, 7
shr eax, 3
sub ecx, eax
xor ebx, ebx
jmp 0x100bdbd1
cmp ecx, eax
jne 0x100bdba8
cmp edi, 0x20
sbb ebx, ebx
add ebx, 2
jmp 0x100bdbe5
mov edx, edi
mov eax, ecx
shr edx, 3
xor ebx, ebx
sub eax, edx
cmp eax, dword [esp + 0x88]
jae 0x100bdbca
mov edx, ecx
mov ebx, 1
sub edx, dword [esp + 0x88]
imul eax, edx, 0xfffffff8
sub ecx, edx
add edi, eax
mov edx, dword [ecx]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
add eax, 0xfffffffd
cmp ecx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
test ebx, ebx
sete al
test eax, ecx
je 0x100bdcf8
mov ebx, dword [esp + 0x50]
mov ecx, edi
and ecx, 0x1f
neg ebx
shl edx, cl
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2]
add edi, eax
movzx eax, byte [ecx + edx*2 + 1]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x1c], ecx
mov eax, edx
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx ebx, byte [ecx + eax*2]
movzx eax, byte [ecx + eax*2 + 1]
add ebx, edi
mov ecx, dword [esp + 0x1c]
mov edi, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x80], edi
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c], ecx
jmp 0x100bdb70
cmp edi, 0x20
ja 0x100bdd03
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x8c]
jb 0x100bdcb0
mov eax, edi
shr eax, 3
sub ecx, eax
and edi, 7
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], edi
mov eax, dword [ecx]
mov dword [esp + 0x7c], eax
jmp 0x100bdcfc
cmp ecx, eax
je 0x100bdd03
mov eax, edi
shr eax, 3
mov dword [esp + 0x14], eax
mov eax, ecx
sub eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x88]
jae 0x100bdcd7
mov eax, ecx
sub eax, dword [esp + 0x88]
jmp 0x100bdcdb
mov eax, dword [esp + 0x14]
sub ecx, eax
imul eax, eax, 0xfffffff8
mov dword [esp + 0x84], ecx
add edi, eax
mov eax, dword [ecx]
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], eax
jmp 0x100bdcfc
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x9c]
cmp edi, 0x20
jbe 0x100bdd27
mov dword [esp + 0x14], 3
jmp 0x100bdda7
cmp ebp, dword [esp + 0x8c]
jb 0x100bdd44
mov eax, edi
mov dword [esp + 0x14], 0
shr eax, 3
sub ebp, eax
and edi, 7
jmp 0x100bdd92
cmp ebp, eax
jne 0x100bdd63
mov eax, esi
cmp edi, 0x20
jae 0x100bdd59
mov dword [esp + 0x14], 1
jmp 0x100bdda9
mov dword [esp + 0x14], 2
jmp 0x100bdda9
mov ebx, dword [esp + 0x88]
mov ecx, edi
shr ecx, 3
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x14], 0
cmp eax, ebx
jae 0x100bdd8b
mov ecx, ebp
mov dword [esp + 0x14], 1
sub ecx, ebx
imul eax, ecx, 0xfffffff8
sub ebp, ecx
add edi, eax
mov ebx, dword [ebp]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebp
mov eax, esi
and eax, 0x1f
cmp edx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x14], eax
sete al
test eax, ecx
je 0x100bde01
mov ecx, edi
mov edx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, esi
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2]
add edi, eax
mov al, byte [ecx + edx*2 + 1]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x80], edi
mov byte [edx], al
inc edx
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c], edx
jmp 0x100bdd15
mov ebx, dword [esp + 0x30]
cmp edx, dword [esp + 0x34]
jae 0x100bde44
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov ecx, edi
mov edx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x28]
shr edx, cl
movzx eax, byte [ebx + edx*2]
add edi, eax
mov al, byte [ebx + edx*2 + 1]
mov byte [esi], al
inc esi
cmp esi, dword [esp + 0x34]
jb 0x100bde17
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x80], edi
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x20]
sub ecx, edx
mov eax, dword [esp + 0x74]
cmp ecx, 3
jle 0x100bdf5e
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
cmp ebx, 0x20
jbe 0x100bde72
mov edi, 3
jmp 0x100bded1
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x78]
jb 0x100bde8a
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
xor edi, edi
jmp 0x100bdebb
cmp ecx, eax
jne 0x100bde98
cmp ebx, 0x20
sbb edi, edi
add edi, 2
jmp 0x100bdecd
mov edx, ebx
mov eax, ecx
shr edx, 3
xor edi, edi
sub eax, edx
cmp eax, dword [esp + 0x74]
jae 0x100bdeb4
mov edx, ecx
mov edi, 1
sub edx, dword [esp + 0x74]
imul eax, edx, 0xfffffff8
sub ecx, edx
add ebx, eax
mov edx, dword [ecx]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x98]
add eax, 0xfffffffd
cmp ecx, eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
je 0x100bdfcd
mov edi, dword [esp + 0x30]
mov ecx, edi
mov ebx, dword [esp + 0x50]
and ecx, 0x1f
shl edx, cl
neg ebx
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2]
add edi, eax
movzx eax, byte [ecx + edx*2 + 1]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x20], ecx
mov eax, edx
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx ebx, byte [ecx + eax*2]
movzx eax, byte [ecx + eax*2 + 1]
add ebx, edi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x6c], ebx
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], ecx
jmp 0x100bde66
cmp ebx, 0x20
ja 0x100bdfdb
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x78]
jb 0x100bdf8f
mov eax, ebx
shr eax, 3
sub ecx, eax
mov eax, dword [esp + 0x74]
and ebx, 7
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ebx
mov edi, dword [ecx]
mov dword [esp + 0x68], edi
jmp 0x100bdfdf
cmp ecx, eax
je 0x100bdfdb
mov edi, ebx
mov eax, ecx
shr edi, 3
sub eax, edi
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x74]
cmp eax, edi
jae 0x100bdfae
mov eax, ecx
sub eax, edi
jmp 0x100bdfb2
mov eax, dword [esp + 0x38]
sub ecx, eax
imul eax, eax, 0xfffffff8
mov dword [esp + 0x70], ecx
mov edi, dword [ecx]
add ebx, eax
mov dword [esp + 0x68], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x6c], ebx
jmp 0x100bdfdf
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x74]
jmp 0x100bdfdf
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x28]
cmp ebx, 0x20
jbe 0x100bdff6
mov dword [esp + 0x34], 3
jmp 0x100be05d
cmp ebp, dword [esp + 0x78]
jb 0x100be010
mov eax, ebx
mov dword [esp + 0x34], 0
shr eax, 3
sub ebp, eax
and ebx, 7
jmp 0x100be04e
cmp ebp, eax
jne 0x100be022
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x34], eax
jmp 0x100be05d
mov edi, dword [esp + 0x74]
mov ecx, ebx
shr ecx, 3
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x34], 0
cmp eax, edi
jae 0x100be047
mov ecx, ebp
mov dword [esp + 0x34], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub ebp, ecx
add ebx, eax
mov edi, dword [ebp]
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
cmp edx, dword [esp + 0x98]
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x34], eax
sete al
test eax, ecx
je 0x100be0a8
mov ecx, ebx
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx*2]
add ebx, eax
mov al, byte [ecx + edx*2 + 1]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x6c], ebx
mov byte [edx], al
inc edx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], edx
jmp 0x100bdfe7
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
cmp edx, dword [esp + 0x98]
jae 0x100be0f3
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov ecx, ebx
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x28]
shr edx, cl
movzx eax, byte [esi + edx*2]
add ebx, eax
mov al, byte [esi + edx*2 + 1]
mov byte [ebp], al
inc ebp
cmp ebp, dword [esp + 0x98]
jb 0x100be0c1
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x6c], ebx
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x60]
sub edx, esi
cmp edx, 3
jle 0x100be1e6
mov edx, dword [esp + 0x54]
nop dword [eax]
cmp ebp, 0x20
jbe 0x100be11c
mov edi, 3
jmp 0x100be16f
mov ecx, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x64]
jb 0x100be134
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
xor edi, edi
jmp 0x100be161
cmp ecx, ebx
jne 0x100be142
cmp ebp, 0x20
sbb edi, edi
add edi, 2
jmp 0x100be16f
mov edx, ebp
mov eax, ecx
shr edx, 3
xor edi, edi
sub eax, edx
cmp eax, ebx
jae 0x100be15a
mov edx, ecx
mov edi, 1
sub edx, ebx
imul eax, edx, 0xfffffff8
sub ecx, edx
add ebp, eax
mov edx, dword [ecx]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x90]
add eax, 0xfffffffd
cmp esi, eax
sbb ecx, ecx
xor eax, eax
neg ecx
test edi, edi
sete al
test eax, ecx
je 0x100be245
mov ebx, dword [esp + 0x50]
mov ecx, ebp
and ecx, 0x1f
neg ebx
shl edx, cl
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x10]
movzx edi, byte [ecx + edx*2]
movzx eax, byte [ecx + edx*2 + 1]
add edi, ebp
mov edx, dword [esp + 0x54]
mov ecx, edi
mov byte [esi], al
and ecx, 0x1f
mov eax, edx
shl eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0x60]
shr eax, cl
mov ecx, dword [esp + 0x10]
movzx ebp, byte [ecx + eax*2]
movzx eax, byte [ecx + eax*2 + 1]
add ebp, edi
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x58], ebp
jmp 0x100be110
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
cmp ebp, 0x20
ja 0x100be253
cmp ecx, eax
jb 0x100be215
mov eax, ebp
shr eax, 3
sub ecx, eax
mov eax, dword [esp + 0x64]
and ebp, 7
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ebp
mov ebx, dword [ecx]
mov dword [esp + 0x54], ebx
jmp 0x100be257
cmp ecx, ebx
je 0x100be253
mov edx, ebp
mov eax, ecx
shr edx, 3
sub eax, edx
cmp eax, ebx
jae 0x100be22a
mov edx, ecx
sub edx, ebx
imul eax, edx, 0xfffffff8
sub ecx, edx
mov dword [esp + 0x5c], ecx
mov ebx, dword [ecx]
add ebp, eax
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ebp
jmp 0x100be257
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x64]
jmp 0x100be257
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x10]
nop dword [eax + eax]
cmp ebp, 0x20
jbe 0x100be26c
mov edx, 3
jmp 0x100be2d2
cmp ecx, eax
jb 0x100be27e
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
xor edx, edx
jmp 0x100be2c4
cmp ecx, dword [esp + 0x60]
jne 0x100be294
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x50], eax
mov edx, eax
jmp 0x100be2d2
mov ebx, dword [esp + 0x60]
mov edx, ebp
shr edx, 3
mov eax, ecx
sub eax, edx
mov dword [esp + 0x50], 0
cmp eax, ebx
jae 0x100be2b9
mov edx, ecx
mov dword [esp + 0x50], 1
sub edx, ebx
imul eax, edx, 0xfffffff8
sub ecx, edx
mov edx, dword [esp + 0x50]
add ebp, eax
mov ebx, dword [ecx]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ecx
cmp esi, dword [esp + 0x90]
sbb ecx, ecx
xor eax, eax
neg ecx
test edx, edx
sete al
test eax, ecx
je 0x100be315
mov ecx, ebp
mov edx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x28]
shr edx, cl
mov ecx, dword [esp + 0x5c]
movzx eax, byte [edi + edx*2]
add ebp, eax
mov al, byte [edi + edx*2 + 1]
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ebp
jmp 0x100be260
cmp esi, dword [esp + 0x90]
jae 0x100be349
nop
mov ecx, ebp
mov edx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x28]
shr edx, cl
movzx eax, byte [edi + edx*2]
add ebp, eax
mov al, byte [edi + edx*2 + 1]
mov byte [esi], al
inc esi
cmp esi, dword [esp + 0x90]
jb 0x100be320
mov dword [esp + 0x58], ebp
lea eax, [esp + 0x54]
push eax
call fcn.100bcbb0
mov edx, eax
lea eax, [esp + 0x68]
push eax
call fcn.100bcbb0
and edx, eax
lea eax, [esp + 0x7c]
push eax
call fcn.100bcbb0
and edx, eax
lea eax, [esp + 0x3c]
push eax
call fcn.100bcbb0
test eax, edx
mov ecx, 0xffffffec
mov eax, dword [esp + 0xa8]
cmove eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x14