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

Disassembly:
mov edx, dword [esp + 0x10]
sub esp, 0x90
cmp edx, 0xa
jae 0x100765db
mov eax, 0xffffffec
add esp, 0x90
ret
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 + 0x90], eax
lea eax, [ecx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xac]
push ecx
movzx ebx, word [eax + 2]
movzx esi, word [eax]
mov dword [esp + 0x2c], ebx
movzx ebx, word [eax + 4]
add eax, 6
mov dword [esp + 0x30], eax
sub ebp, ebx
sub ebp, dword [esp + 0x2c]
add eax, esi
mov dword [esp + 0x1c], eax
sub ebp, esi
add eax, dword [esp + 0x2c]
sub ebp, 6
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xac]
add eax, 3
mov dword [esp + 0x3c], ebx
shr eax, 2
mov dword [esp + 0xa0], esi
lea ebx, [eax + edi]
lea esi, [ebx + eax]
mov dword [esp + 0x98], ebx
lea edi, [esi + eax]
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], esi
mov esi, edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], esi
call fcn.1007a900
shr eax, 0x10
add esp, 4
movzx ebx, al
mov dword [esp + 0x50], ebx
mov dword [esp + 0x14], 1
cmp ebp, edx
ja 0x10076a83
cmp edi, dword [esp + 0x90]
ja 0x10076a83
cmp dword [esp + 0xa8], 6
jb 0x10076a83
push dword [esp + 0x9c]
lea eax, [esp + 0x40]
push dword [esp + 0x30]
push eax
call fcn.10075990
add esp, 0xc
cmp eax, 0xffffff88
ja 0x100775ce
push dword [esp + 0x28]
lea eax, [esp + 0x80]
push dword [esp + 0x1c]
push eax
call fcn.10075990
add esp, 0xc
cmp eax, 0xffffff88
ja 0x100775ce
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x68]
push edi
push dword [esp + 0x34]
push eax
call fcn.10075990
add esp, 0xc
cmp eax, 0xffffff88
ja 0x100775ce
mov eax, dword [esp + 0x30]
add eax, edi
push ebp
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.10075990
add esp, 0xc
cmp eax, 0xffffff88
ja 0x100775ce
mov edx, dword [esp + 0x90]
mov ecx, esi
mov eax, edx
sub eax, ecx
cmp eax, 4
jb 0x10076a32
lea eax, [edx - 3]
cmp ecx, eax
jae 0x10076a32
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 0x10076789
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 ecx, dword [esp + 0xa4]
movzx edi, byte [eax + edx*2]
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
add edi, dword [esp + 0x18]
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]
add edi, ebx
mov dword [esp + 0x28], edi
movzx eax, byte [edx + eax*2 + 1]
mov ecx, dword [esp + 0x1c]
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 0x1007691d
mov ecx, 3
jmp 0x1007693f
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 0x10076963
mov ecx, 3
jmp 0x10076987
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 0x100769a7
mov ecx, 3
jmp 0x100769c5
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 0x100769e3
mov ecx, 3
jmp 0x10076a01
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 0x10076781
mov dword [esp + 0x24], esi
jmp 0x10076a55
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 0x10076a83
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x1c], eax
ja 0x10076a83
mov eax, dword [esp + 0x98]
cmp dword [esp + 0x20], eax
mov eax, dword [esp + 0x94]
jbe 0x10076a93
pop edi
pop esi
pop ebp
mov eax, 0xffffffec
pop ebx
add esp, 0x90
ret
sub eax, ecx
cmp eax, 3
mov eax, dword [esp + 0x48]
jle 0x10076bb5
mov ebx, dword [esp + 0x94]
add ebx, 0xfffffffd
mov dword [esp + 0x38], ebx
cmp edx, 0x20
jbe 0x10076ac0
mov edi, dword [esp + 0x3c]
mov ebx, 3
jmp 0x10076b26
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x4c]
jb 0x10076ad8
mov eax, edx
and edx, 7
shr eax, 3
sub ecx, eax
xor ebx, ebx
jmp 0x10076b0d
cmp ecx, eax
jne 0x10076aea
mov edi, dword [esp + 0x3c]
cmp edx, 0x20
sbb ebx, ebx
add ebx, 2
jmp 0x10076b1f
mov edi, edx
mov eax, ecx
shr edi, 3
xor ebx, ebx
sub eax, edi
cmp eax, dword [esp + 0x48]
jae 0x10076b06
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 0x10076be0
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 0x10076ab0
cmp edx, 0x20
ja 0x10076beb
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x4c]
jb 0x10076c12
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]
nop dword [eax + eax]
cmp edx, 0x20
jbe 0x10076c47
mov dword [esp + 0x14], 3
jmp 0x10076cbf
cmp ecx, eax
je 0x10076be4
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 0x10076c3a
mov eax, ecx
sub eax, dword [esp + 0x48]
sub ecx, eax
imul eax, eax, 0xfffffff8
add edx, eax
jmp 0x10076bce
mov eax, dword [esp + 0x14]
sub ecx, eax
imul eax, eax, 0xfffffff8
add edx, eax
jmp 0x10076bce
cmp ebp, dword [esp + 0x4c]
jb 0x10076c61
mov eax, edx
mov dword [esp + 0x14], 0
shr eax, 3
sub ebp, eax
and edx, 7
jmp 0x10076cac
cmp ebp, eax
jne 0x10076c80
mov eax, ebx
cmp edx, 0x20
jae 0x10076c76
mov dword [esp + 0x14], 1
jmp 0x10076cc1
mov dword [esp + 0x14], 2
jmp 0x10076cc1
mov edi, edx
mov dword [esp + 0x14], 0
shr edi, 3
mov eax, ebp
sub eax, edi
cmp eax, dword [esp + 0x48]
jae 0x10076ca5
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 0x10076d28
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 0x10076c00
mov edi, dword [esp + 0xa4]
cmp edi, dword [esp + 0x94]
mov edi, dword [esp + 0x28]
jae 0x10076d87
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 0x10076d51
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 0x10076eb7
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
nop dword [eax]
cmp edi, 0x20
jbe 0x10076dbc
mov ebx, 3
jmp 0x10076e29
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x8c]
jb 0x10076dda
mov eax, edi
and edi, 7
shr eax, 3
sub ecx, eax
xor ebx, ebx
jmp 0x10076e11
cmp ecx, eax
jne 0x10076de8
cmp edi, 0x20
sbb ebx, ebx
add ebx, 2
jmp 0x10076e25
mov edx, edi
mov eax, ecx
shr edx, 3
xor ebx, ebx
sub eax, edx
cmp eax, dword [esp + 0x88]
jae 0x10076e0a
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 0x10076f38
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 0x10076db0
cmp edi, 0x20
ja 0x10076f43
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x8c]
jb 0x10076ef0
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 0x10076f3c
cmp ecx, eax
je 0x10076f43
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 0x10076f17
mov eax, ecx
sub eax, dword [esp + 0x88]
jmp 0x10076f1b
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 0x10076f3c
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 0x10076f67
mov dword [esp + 0x14], 3
jmp 0x10076fe7
cmp ebp, dword [esp + 0x8c]
jb 0x10076f84
mov eax, edi
mov dword [esp + 0x14], 0
shr eax, 3
sub ebp, eax
and edi, 7
jmp 0x10076fd2
cmp ebp, eax
jne 0x10076fa3
mov eax, esi
cmp edi, 0x20
jae 0x10076f99
mov dword [esp + 0x14], 1
jmp 0x10076fe9
mov dword [esp + 0x14], 2
jmp 0x10076fe9
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 0x10076fcb
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 0x10077041
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 0x10076f55
mov ebx, dword [esp + 0x30]
cmp edx, dword [esp + 0x34]
jae 0x10077084
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 0x10077057
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 0x1007719e
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
cmp ebx, 0x20
jbe 0x100770b2
mov edi, 3
jmp 0x10077111
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x78]
jb 0x100770ca
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
xor edi, edi
jmp 0x100770fb
cmp ecx, eax
jne 0x100770d8
cmp ebx, 0x20
sbb edi, edi
add edi, 2
jmp 0x1007710d
mov edx, ebx
mov eax, ecx
shr edx, 3
xor edi, edi
sub eax, edx
cmp eax, dword [esp + 0x74]
jae 0x100770f4
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 0x1007720d
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 0x100770a6
cmp ebx, 0x20
ja 0x1007721b
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x78]
jb 0x100771cf
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 0x1007721f
cmp ecx, eax
je 0x1007721b
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 0x100771ee
mov eax, ecx
sub eax, edi
jmp 0x100771f2
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 0x1007721f
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x74]
jmp 0x1007721f
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x28]
cmp ebx, 0x20
jbe 0x10077236
mov dword [esp + 0x34], 3
jmp 0x1007729d
cmp ebp, dword [esp + 0x78]
jb 0x10077250
mov eax, ebx
mov dword [esp + 0x34], 0
shr eax, 3
sub ebp, eax
and ebx, 7
jmp 0x1007728e
cmp ebp, eax
jne 0x10077262
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x34], eax
jmp 0x1007729d
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 0x10077287
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 0x100772e8
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 0x10077227
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
cmp edx, dword [esp + 0x98]
jae 0x10077333
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 0x10077301
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 0x10077426
mov edx, dword [esp + 0x54]
nop dword [eax]
cmp ebp, 0x20
jbe 0x1007735c
mov edi, 3
jmp 0x100773af
mov ecx, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x64]
jb 0x10077374
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
xor edi, edi
jmp 0x100773a1
cmp ecx, ebx
jne 0x10077382
cmp ebp, 0x20
sbb edi, edi
add edi, 2
jmp 0x100773af
mov edx, ebp
mov eax, ecx
shr edx, 3
xor edi, edi
sub eax, edx
cmp eax, ebx
jae 0x1007739a
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 0x10077485
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 0x10077350
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
cmp ebp, 0x20
ja 0x10077493
cmp ecx, eax
jb 0x10077455
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 0x10077497
cmp ecx, ebx
je 0x10077493
mov edx, ebp
mov eax, ecx
shr edx, 3
sub eax, edx
cmp eax, ebx
jae 0x1007746a
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 0x10077497
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x64]
jmp 0x10077497
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x10]
nop dword [eax + eax]
cmp ebp, 0x20
jbe 0x100774ac
mov edx, 3
jmp 0x10077512
cmp ecx, eax
jb 0x100774be
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
xor edx, edx
jmp 0x10077504
cmp ecx, dword [esp + 0x60]
jne 0x100774d4
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x50], eax
mov edx, eax
jmp 0x10077512
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 0x100774f9
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 0x10077555
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 0x100774a0
cmp esi, dword [esp + 0x90]
jae 0x10077589
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 0x10077560
mov dword [esp + 0x58], ebp
lea eax, [esp + 0x54]
push eax
call fcn.10075960
mov edx, eax
lea eax, [esp + 0x6c]
push eax
call fcn.10075960
and edx, eax
lea eax, [esp + 0x84]
push eax
call fcn.10075960
and edx, eax
lea eax, [esp + 0x48]
push eax
call fcn.10075960
add esp, 0x10
mov ecx, 0xffffffec
test eax, edx
mov eax, dword [esp + 0xa8]
cmove eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret