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

Disassembly:
sub esp, 0x22c
mov eax, dword [0x763480]
xor eax, esp
mov dword [esp + 0x228], eax
mov ecx, dword [esp + 0x230]
mov eax, dword [esp + 0x234]
push ebx
push ebp
mov edx, dword [ecx + 4]
mov ebp, dword [esp + 0x248]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], edx
push esi
lea esi, [esp + 0x34]
push edi
mov edi, dword [esp + 0x24c]
mov dword [esp + 0x14], edi
cmp edx, 0x200
jb 0x674bf0
mov esi, dword [ecx]
movsx edx, word [eax]
sub edx, dword [esp + 0x248]
mov eax, edx
mov ebp, dword [esp + 0x2c]
sar eax, 0x1f
add edx, eax
xor eax, edx
movzx ecx, byte [eax + 0x6eba10]
mov eax, 1
shl eax, cl
dec eax
and eax, edx
mov edx, 2
mov edi, dword [edi + ecx*4]
shl edi, cl
or edi, eax
mov eax, dword [esp + 0x14]
movsx eax, byte [eax + ecx + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x674cee
mov ecx, ebx
mov eax, edi
neg ecx
sar eax, cl
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
shl eax, cl
mov ecx, dword [esp + 0x10]
or ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x674cce
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x10]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x10]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x10]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x674cf5
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
add ebx, 0x20
jmp 0x674cf5
mov eax, dword [ebp + 8]
shl eax, cl
or edi, eax
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
movsx ecx, word [eax + 2]
test ecx, ecx
jne 0x674d0d
lea edx, [ecx + 0x10]
jmp 0x674e16
mov eax, ecx
mov dword [esp + 0x20], ebx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x14], ecx
movzx ecx, byte [eax + 0x6eba10]
mov eax, dword [ebp + ecx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x14]
or dword [esp + 0x10], eax
movsx eax, byte [ecx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x674e0a
mov eax, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar eax, cl
mov ecx, dword [esp + 0x20]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x674de6
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x674e10
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
add ebx, 0x20
jmp 0x674e10
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x10]
test ecx, ecx
jne 0x674e26
add edx, 0x10
jmp 0x674f30
mov eax, ecx
mov dword [esp + 0x14], ebx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
add edx, ecx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x674f24
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x14]
shl edi, cl
or edx, edi
mov dword [esp + 0x18], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x674f00
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x674f2a
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x674f2a
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x20]
test ecx, ecx
jne 0x674f40
add edx, 0x10
jmp 0x67504a
mov eax, ecx
mov dword [esp + 0x14], ebx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
add edx, ecx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67503e
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x14]
shl edi, cl
or edx, edi
mov dword [esp + 0x18], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67501a
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675044
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x675044
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x12]
test ecx, ecx
jne 0x67505a
add edx, 0x10
jmp 0x675164
mov eax, ecx
mov dword [esp + 0x14], ebx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
add edx, ecx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x675158
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x14]
shl edi, cl
or edx, edi
mov dword [esp + 0x18], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x675134
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67515e
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x67515e
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 4]
test ecx, ecx
jne 0x675174
add edx, 0x10
jmp 0x67527e
mov eax, ecx
mov dword [esp + 0x14], ebx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
add edx, ecx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x675272
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x14]
shl edi, cl
or edx, edi
mov dword [esp + 0x18], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67524e
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675278
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x675278
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 6]
test ecx, ecx
jne 0x67528e
add edx, 0x10
jmp 0x6754af
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x1c], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x6753b9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x20], ebx
sub ebx, ecx
jns 0x6753a2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x20]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67537c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6753a6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6753a6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x6752d0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x24], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x1c]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6754a3
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x24]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67547f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6754a9
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6754a9
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x14]
test ecx, ecx
jne 0x6754bf
add edx, 0x10
jmp 0x6756df
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x6755e9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6755d2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x6755ac
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6755d6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6755d6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x675500
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6756d3
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x6756af
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6756d9
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6756d9
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x22]
test ecx, ecx
jne 0x6756ef
add edx, 0x10
jmp 0x67590f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x675819
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x675802
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x6757dc
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675806
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x675806
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x675730
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x675903
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x6758df
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675909
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x675909
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x30]
test ecx, ecx
jne 0x67591f
add edx, 0x10
jmp 0x675b3f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x675a49
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x675a32
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x675a0c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675a36
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x675a36
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x675960
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x675b33
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x675b0f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675b39
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x675b39
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x40]
test ecx, ecx
jne 0x675b4f
add edx, 0x10
jmp 0x675d6f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x675c79
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x675c62
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x675c3c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675c66
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x675c66
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x675b90
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x675d63
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x675d3f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675d69
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x675d69
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x32]
test ecx, ecx
jne 0x675d7f
add edx, 0x10
jmp 0x675f9f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x675ea9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x675e92
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x675e6c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675e96
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x675e96
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x675dc0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x675f93
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x675f6f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x675f99
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x675f99
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x24]
test ecx, ecx
jne 0x675faf
add edx, 0x10
jmp 0x6761cf
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x6760d9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6760c2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67609c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6760c6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6760c6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x675ff0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6761c3
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67619f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6761c9
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6761c9
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x16]
test ecx, ecx
jne 0x6761df
add edx, 0x10
jmp 0x6763ff
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x676309
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6762f2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x6762cc
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6762f6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6762f6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x676220
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6763f3
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x6763cf
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6763f9
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6763f9
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 8]
test ecx, ecx
jne 0x67640f
add edx, 0x10
jmp 0x676633
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x676539
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x676522
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x6764fc
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x676526
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x676526
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x676450
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x676627
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x676603
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67662d
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x67662d
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0xa]
test ecx, ecx
jne 0x676643
add edx, 0x10
jmp 0x676867
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x67676d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x676756
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x676730
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67675a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67675a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x676680
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67685b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x676837
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x676861
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x676861
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x18]
test ecx, ecx
jne 0x676877
add edx, 0x10
jmp 0x676aa7
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x6769ad
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x676996
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x676970
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67699a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67699a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x6768c0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x676a9b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x676a77
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x676aa1
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x676aa1
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x26]
test ecx, ecx
jne 0x676ab7
add edx, 0x10
jmp 0x676cdf
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x676be9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x676bd2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x676bac
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x676bd6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x676bd6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x676b00
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x676cd3
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x676caf
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x676cd9
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x676cd9
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x34]
test ecx, ecx
jne 0x676cef
add edx, 0x10
jmp 0x676f13
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x676e19
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x676e02
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x676ddc
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x676e06
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x676e06
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x676d30
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x676f07
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x676ee3
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x676f0d
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x676f0d
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x42]
test ecx, ecx
jne 0x676f23
add edx, 0x10
jmp 0x677147
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x67704d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x677036
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x677010
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67703a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67703a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x676f60
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67713b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x677117
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x677141
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x677141
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x50]
test ecx, ecx
jne 0x677157
add edx, 0x10
jmp 0x677387
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x67728d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x677276
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x677250
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67727a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67727a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x6771a0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67737b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x677357
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x677381
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x677381
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x60]
test ecx, ecx
jne 0x677397
add edx, 0x10
jmp 0x6775bf
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x6774c9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6774b2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67748c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6774b6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6774b6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x6773e0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6775b3
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67758f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6775b9
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6775b9
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x52]
test ecx, ecx
jne 0x6775cf
add edx, 0x10
jmp 0x6777f3
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x6776f9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6776e2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x6776bc
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6776e6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6776e6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x677610
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6777e7
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x6777c3
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6777ed
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6777ed
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x44]
test ecx, ecx
jne 0x677803
add edx, 0x10
jmp 0x677a27
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x67792d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x677916
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x6778f0
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67791a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67791a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x677840
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x677a1b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x6779f7
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x677a21
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x677a21
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x36]
test ecx, ecx
jne 0x677a37
add edx, 0x10
jmp 0x677c67
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x677b6d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x677b56
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x677b30
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x677b5a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x677b5a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x677a80
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x677c5b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x677c37
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x677c61
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x677c61
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x28]
test ecx, ecx
jne 0x677c77
add edx, 0x10
jmp 0x677e9f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x677da9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x677d92
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x677d6c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x677d96
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x677d96
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x677cc0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x677e93
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x677e6f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x677e99
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x677e99
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x1a]
test ecx, ecx
jne 0x677eaf
add edx, 0x10
jmp 0x6780d3
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x677fd9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x677fc2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x677f9c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x677fc6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x677fc6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x677ef0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6780c7
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x6780a3
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6780cd
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6780cd
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0xc]
test ecx, ecx
jne 0x6780e3
add edx, 0x10
jmp 0x678307
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x67820d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6781f6
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x6781d0
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6781fa
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6781fa
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x678120
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6782fb
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x6782d7
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678301
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x678301
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0xe]
test ecx, ecx
jne 0x678317
add edx, 0x10
jmp 0x678547
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jb 0x67844d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x678436
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x678410
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67843a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67843a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x678360
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67853b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x678517
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678541
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x678541
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x1c]
test ecx, ecx
jne 0x678557
add edx, 0x10
jmp 0x67877f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x678689
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x678672
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67864c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678676
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x678676
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x6785a0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x678773
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67874f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678779
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x678779
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x2a]
test ecx, ecx
jne 0x67878f
add edx, 0x10
jmp 0x6789b3
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x6788b9
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6788a2
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67887c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6788a6
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6788a6
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x6787d0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6789a7
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x678983
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6789ad
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6789ad
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x38]
test ecx, ecx
jne 0x6789c3
add edx, 0x10
jmp 0x678be7
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x678aed
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x678ad6
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x678ab0
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678ada
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x678ada
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x678a00
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x678bdb
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x678bb7
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678be1
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x678be1
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x46]
test ecx, ecx
jne 0x678bf7
add edx, 0x10
jmp 0x678e27
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x678d2d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x678d16
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x678cf0
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678d1a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x678d1a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x678c40
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x678e1b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x678df7
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678e21
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x678e21
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x54]
test ecx, ecx
jne 0x678e37
add edx, 0x10
jmp 0x67905f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x678f69
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x678f52
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x678f2c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x678f56
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x678f56
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x678e80
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x679053
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67902f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679059
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x679059
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x62]
test ecx, ecx
jne 0x67906f
add edx, 0x10
jmp 0x679293
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x679199
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x679182
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67915c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679186
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x679186
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x6790b0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x679287
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x679263
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67928d
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x67928d
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x70]
test ecx, ecx
jne 0x6792a3
add edx, 0x10
jmp 0x6794c7
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x6793cd
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6793b6
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x679390
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6793ba
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6793ba
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x6792e0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6794bb
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x679497
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6794c1
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x6794c1
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x72]
test ecx, ecx
jne 0x6794d7
add edx, 0x10
jmp 0x679707
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x67960d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x6795f6
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x6795d0
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x6795fa
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x6795fa
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x679520
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x6796fb
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x6796d7
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679701
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x679701
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x64]
test ecx, ecx
jne 0x679717
add edx, 0x10
jmp 0x67993f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x679849
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x679832
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67980c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679836
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x679836
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x679760
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x679933
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67990f
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679939
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x679939
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x56]
test ecx, ecx
jne 0x67994f
add edx, 0x10
jmp 0x679b73
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x679a79
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x679a62
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x679a3c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679a66
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x679a66
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x679990
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x679b67
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x679b43
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679b6d
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x679b6d
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x48]
test ecx, ecx
jne 0x679b83
add edx, 0x10
jmp 0x679da7
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x679cad
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x679c96
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x679c70
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679c9a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x679c9a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x679bc0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x679d9b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x679d77
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679da1
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x679da1
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x3a]
test ecx, ecx
jne 0x679db7
add edx, 0x10
jmp 0x679fe7
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x679eed
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x679ed6
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x679eb0
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679eda
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x679eda
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x679e00
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x679fdb
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x679fb7
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x679fe1
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x679fe1
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x2c]
test ecx, ecx
jne 0x679ff7
add edx, 0x10
jmp 0x67a21f
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x67a129
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x67a112
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67a0ec
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67a116
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67a116
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x67a040
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67a213
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67a1ef
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67a219
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x67a219
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x1e]
test ecx, ecx
jne 0x67a22f
add edx, 0x10
jmp 0x67a453
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x67a359
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x67a342
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67a31c
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67a346
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67a346
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x67a270
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67a447
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67a423
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67a44d
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x67a44d
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x2e]
test ecx, ecx
jne 0x67a463
add edx, 0x10
jmp 0x67a687
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x67a58d
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x67a576
mov ecx, ebx
neg ecx
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, eax
or ecx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + 0x1010101]
not eax
and eax, ecx
test eax, 0x80808080
mov eax, ecx
je 0x67a550
shr eax, 0x18
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x18]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
mov edi, dword [ebp + 0x3c0]
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67a57a
shr eax, 0x18
mov byte [esi], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 4
mov edi, dword [ebp + 0x3c0]
add ebx, 0x20
jmp 0x67a57a
shl edi, cl
or edi, eax
sub dword [esp + 0x14], 1
jne 0x67a4a0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67a67b
mov edx, dword [esp + 0x10]
mov ecx, ebx
neg ecx
sar edx, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
or edx, edi
mov dword [esp + 0x14], edx
lea eax, [edx + 0x1010101]
not eax
and eax, edx
test eax, 0x80808080
mov eax, edx
je 0x67a657
shr eax, 0x18
mov edx, 2
mov byte [esi], al
cmp al, 0xff
mov byte [esi + 1], 0
mov eax, edx
sbb ecx, ecx
mov edi, dword [esp + 0x10]
neg ecx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
shr eax, 8
cmp al, 0xff
mov byte [esi], al
sbb ecx, ecx
neg ecx
mov byte [esi + 1], 0
mov eax, edx
sub eax, ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp al, 0xff
sbb ecx, ecx
mov byte [esi], al
neg ecx
mov eax, edx
mov byte [esi + 1], 0
sub eax, ecx
add esi, eax
add ebx, 0x20
jmp 0x67a681
mov edi, dword [esp + 0x10]
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
add esi, 4
add ebx, 0x20
jmp 0x67a681
shl edi, cl
or edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor edx, edx
movsx ecx, word [eax + 0x3c]
test ecx, ecx
jne 0x67a697
add edx, 0x10
jmp 0x67a8c7
mov eax, ecx
sar eax, 0x1f
add ecx, eax
xor eax, ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x6eba10]
mov dword [esp + 0x24], ecx
cmp edx, 0x100
jl 0x67a7cd
mov eax, edx
shr eax, 8
mov dword [esp + 0x14], eax
neg eax
shl eax, 8
add edx, eax
mov dword [esp + 0x10], edx
mov edx, 2
nop dword [eax]
nop dword [eax + eax]
movsx ecx, byte [ebp + 0x4f0]
mov eax, dword [ebp + 0x3c0]
mov dword [esp + 0x1c], ebx
sub ebx, ecx
jns 0x67a7b6
add edx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ebp + edx*4]
shl eax, cl
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
dec eax
and eax, dword [esp + 0x20]
or dword [esp + 0x10], eax
movsx eax, byte [edx + ebp + 0x400]
add ecx, eax
sub ebx, ecx
jns 0x67a8bb
movsx ecx, word [eax + 0x4a]
test ecx, ecx
jne 0x67a8d7