Function at 0x1004d6d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x1c]
mov ecx, dword [edx + 0x4000]
mov dword [ebp - 0x50], edi
mov ebx, dword [edx + 0x4008]
mov edi, dword [edx + 0x4010]
add eax, ecx
lea edx, [ebx + edi]
mov dword [ebp - 0x24], ebx
cmp eax, 0x80000001
jb 0x1004d7a1
add ecx, 0xffff0000
movdqa xmm1, xmmword [0x1006c7f0]
mov eax, 0xffffc000
movd xmm0, ecx
pshufd xmm0, xmm0, 0
movdqa xmm2, xmm0
pxor xmm2, xmm1
mov ecx, dword [ebp + 8]
movdqu xmm3, xmmword [ecx + eax + 0x4000]
movdqa xmm4, xmm3
psubd xmm3, xmm0
pxor xmm4, xmm1
pcmpgtd xmm4, xmm2
pand xmm3, xmm4
movdqu xmmword [ecx + eax + 0x4000], xmm3
add eax, 0x10
jne 0x1004d731
mov eax, dword [ebp + 8]
mov dword [eax + 0x4000], 0x10000
mov edi, dword [eax + 0x4010]
cmp edi, 0x10001
jb 0x1004d78c
mov eax, dword [ebp + 8]
mov edi, 0x10000
mov dword [eax + 0x4010], 0x10000
mov ecx, dword [ebp + 8]
mov eax, edx
sub eax, edi
mov dword [ebp - 0x24], eax
mov dword [ecx + 0x4008], eax
mov ecx, 0x10000
xor eax, eax
mov dword [ebp - 0x2c], ecx
inc eax
test esi, esi
cmovle esi, eax
mov eax, 0x10001
cmp esi, 0x10002
cmovl eax, esi
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0xc]
cmp edx, eax
je 0x1004d7e7
lea esi, [edi - 1]
cmp esi, 2
ja 0x1004d7e7
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
xor edi, edi
mov dword [eax + 0x4010], 0
mov dword [eax + 0x4008], edx
mov dword [ebp - 0x24], edx
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov ecx, edi
lea edi, [esi + eax]
cmp edi, dword [ebp - 0x24]
mov dword [ebp - 0x54], edi
jbe 0x1004d82d
cmp edi, edx
jae 0x1004d82d
mov esi, edx
mov eax, 0x10000
mov ebx, dword [ebp + 8]
sub esi, dword [ebp - 0x54]
cmp esi, eax
cmovae esi, eax
xor edi, edi
mov eax, edx
cmp esi, 4
cmovae edi, esi
mov ecx, edi
sub eax, edi
mov dword [ebx + 0x4010], edi
mov dword [ebp - 0x24], eax
mov dword [ebx + 0x4008], eax
mov eax, dword [ebp + 0x18]
cmp edx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
je 0x1004ddff
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
mov eax, dword [eax + 0x400c]
test eax, eax
mov dword [ebp - 0x38], eax
je 0x1004deed
cmp edx, 0x1001
jl 0x1004dffd
push 0x4014
push dword [ebp - 0x38]
push dword [ebp + 8]
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp + 0x14]
add esp, 0xc
xor eax, eax
cmp edx, 0x7e000000
ja 0x1004eebe
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebx + 0x4000]
mov eax, esi
mov ecx, dword [ebx + 0x4008]
mov dword [ebp - 0x34], esi
sub eax, edi
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x4010]
add ecx, eax
add eax, edx
mov dword [ebx + 0x4010], eax
lea eax, [edi + edx]
mov dword [ebp - 0x38], ecx
mov ecx, ebx
lea edx, [esi + 2]
mov dword [ebx + 0x4000], eax
mov dword [ebx + 0x4004], 2
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x14
mov dword [ebx + eax*4], edi
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebp + 0x10]
sub ebx, edi
mov edi, dword [ebp - 0x5c]
add dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
mov ecx, edi
shl ecx, 6
or ecx, 1
test eax, eax
cmove ebx, eax
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x38]
cmove ebx, eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x38], ebx
lea ebx, [eax - 5]
add eax, 0xfffffff8
mov dword [ebp - 0x3c], ebx
lea ebx, [esi + 1]
mov dword [ebp - 0x28], eax
lea eax, [esi + 4]
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x10]
lea ebx, [ebx + 1]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x58], ebx
mov ebx, dword [ebp + 0x14]
lea ebx, [ebx + esi - 0xb]
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x30], esi
mov eax, dword [esi]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x10], edi
imul edi, eax, 0x9e3779b1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], edx
mov edx, esi
mov esi, dword [ebp - 0x2c]
shr edi, 0x14
mov eax, dword [eax + edi*4]
mov esi, dword [esi]
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp + 8]
cmovb edx, dword [ebp - 0x20]
mov dword [esi + edi*4], ebx
lea edi, [eax + 0xffff]
cmp edi, ebx
jb 0x1004d98f
add edx, eax
mov esi, dword [ebp - 0x30]
mov edi, dword [edx]
cmp edi, dword [esi]
je 0x1004d9bc
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
lea edi, [ecx + 1]
shr ecx, 6
mov dword [ebp - 0x10], edi
mov edi, ecx
mov ecx, dword [ebp - 0x10]
mov ebx, eax
add edx, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
sub ebx, esi
cmp edx, dword [ebp - 0x4c]
jbe 0x1004d94e
jmp 0x1004dd6a
cmp eax, dword [ebp - 0x24]
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x34]
cmovb edi, dword [ebp - 0x44]
sub ebx, eax
mov dword [ebp - 0x58], ebx
mov ebx, dword [ebp - 0x30]
mov esi, edx
cmp edx, edi
jbe 0x1004d9ec
cmp ebx, ecx
jbe 0x1004d9ec
lea eax, [ebx - 1]
lea edx, [esi - 1]
mov dword [ebp - 0x30], eax
mov ah, byte [ebx - 1]
cmp ah, byte [esi - 1]
je 0x1004d9ce
mov dword [ebp - 0x14], edi
mov edi, ebx
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x18]
mov edx, 0x80808081
sub edi, ecx
mov eax, edi
mul edx
lea ecx, [ebx + edi]
shr edx, 7
lea eax, [edx + ecx + 9]
cmp eax, dword [ebp - 0x40]
ja 0x1004f8e2
lea ecx, [ebx + 1]
cmp edi, 0xf
mov edx, edi
jb 0x1004daa7
lea eax, [edx - 0xf]
mov byte [ebx], 0xf0
mov edi, eax
cmp eax, 0xff
mov eax, ebx
mov ebx, dword [ebp - 0x34]
jl 0x1004dab5
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x30]
cmp edi, 0x1fe
mov eax, 0x1fd
cmovge edi, eax
lea eax, [edx + 0xef]
mov dword [ebp - 0x10], eax
lea eax, [edi + ebx]
mov ebx, 0x80808081
neg eax
lea eax, [edx + eax + 0xef]
mul ebx
shr edx, 7
inc edx
push edx
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
sub eax, dword [ebp - 0x34]
sub eax, edi
mov edi, dword [ebp - 0x2c]
mul ebx
mov ebx, dword [ebp - 0x34]
shr edx, 7
mov eax, edx
lea ecx, [ecx + edx + 2]
shl eax, 8
sub edx, eax
lea edi, [edi + edx - 0x10e]
mov edx, dword [ebp - 0x2c]
jmp 0x1004dab8
mov eax, edx
shl al, 4
mov byte [ebx], al
mov eax, ebx
mov ebx, dword [ebp - 0x34]
jmp 0x1004dac0
mov dword [ebp - 0x18], eax
mov eax, edi
mov byte [ecx], al
mov eax, dword [ebp - 0x18]
inc ecx
add edx, ecx
mov dword [ebp - 0x10], esi
movq xmm0, qword [ebx]
add ebx, 8
movq qword [ecx], xmm0
add ecx, 8
cmp ecx, edx
jb 0x1004dac5
mov esi, eax
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], edx
mov word [edx], di
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], esi
cmp ecx, dword [ebp - 0x44]
je 0x1004dc4b
mov esi, dword [ebp - 0x10]
lea edi, [eax + 4]
cmp dword [ebp - 0x28], edi
lea edx, [esi + 4]
jbe 0x1004fa4f
mov ecx, dword [edi]
xor ecx, dword [edx]
je 0x1004dcb7
bsf ebx, ecx
shr ebx, 3
mov eax, dword [ebp - 0x34]
lea eax, [ebx + eax + 4]
mov dword [ebp - 0x34], eax
mov esi, dword [ebp - 0x2c]
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
lea eax, [esi + edx + 8]
cmp eax, dword [ebp - 0x40]
ja 0x1004f8e2
mov ecx, dword [ebp - 0x30]
lea edi, [esi + 2]
cmp ebx, 0xf
mov al, byte [ecx]
jb 0x1004dbbc
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [edi], 0xffffffff
cmp eax, 0x3fc
jb 0x1004dba2
lea eax, [ebx - 0x40b]
mov edx, 0x80808081
lea ecx, [esi + 6]
mul edx
mov edi, edx
shr edi, 9
lea eax, [edi*4 + 4]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
imul eax, edi, 0xfffffc04
lea ecx, [esi + edi*4 + 6]
mov edi, ecx
lea eax, [eax + ebx - 0x40b]
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
lea edi, [edi + ecx + 1]
add eax, ecx
mov dword [ebp - 0x18], edi
mov byte [edi - 1], al
jmp 0x1004dbc3
add al, bl
mov dword [ebp - 0x18], edi
mov byte [ecx], al
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x1c]
cmp edi, dword [ebp - 0x4c]
jae 0x1004dd6a
imul ecx, dword [edi - 2], 0x9e3779b1
mov edx, dword [ebp + 8]
lea eax, [edi - 2]
mov ebx, edi
sub eax, esi
shr ecx, 0x14
mov dword [edx + ecx*4], eax
imul ecx, dword [edi], 0x9e3779b1
sub edi, esi
shr ecx, 0x14
mov eax, dword [edx + ecx*4]
mov edx, esi
mov esi, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x24]
cmovb esi, dword [ebp - 0x44]
cmovb edx, dword [ebp - 0x20]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp + 8]
mov dword [esi + ecx*4], edi
lea esi, [eax + 0xffff]
cmp esi, edi
jb 0x1004dd4d
add edx, eax
mov ecx, dword [edx]
cmp ecx, dword [ebx]
jne 0x1004dd4d
mov ecx, dword [ebp - 0x18]
mov esi, edi
mov dword [ebp - 0x10], edx
lea edi, [ecx + 1]
mov byte [ecx], 0
mov dword [ebp - 0x2c], edi
mov edi, esi
mov esi, ecx
mov edx, dword [ebp - 0x2c]
sub edi, eax
mov eax, ebx
jmp 0x1004dadf
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x3c]
lea ebx, [eax + 4]
sub edx, esi
add esi, 4
add edx, eax
cmp edx, ecx
cmova edx, ecx
lea ecx, [edx - 3]
mov dword [ebp - 0x14], edx
cmp ecx, ebx
jbe 0x1004fa56
mov edi, dword [ebx]
xor edi, dword [esi]
je 0x1004dce5
mov eax, dword [ebp - 0x14]
bsf ebx, edi
shr ebx, 3
mov ecx, dword [ebp - 0x34]
lea ecx, [ebx + ecx + 4]
cmp ecx, eax
mov dword [ebp - 0x34], ecx
jne 0x1004db23
mov edi, dword [ebp + 0xc]
cmp dword [ebp - 0x28], eax
mov edx, eax
mov esi, edi
jbe 0x1004dd27
mov ecx, dword [eax]
xor ecx, dword [edi]
je 0x1004dd21
bsf edx, ecx
shr edx, 3
add ebx, edx
add eax, edx
jmp 0x1004db20
add esi, 8
lea ebx, [eax + 8]
mov edx, esi
cmp ebx, dword [ebp - 0x28]
jae 0x1004f830
mov ecx, dword [ebx]
xor ecx, dword [edx]
jne 0x1004dcd6
add ebx, 4
add edx, 4
jmp 0x1004dcbf
bsf ecx, ecx
shr ecx, 3
add ebx, ecx
sub ebx, edi
jmp 0x1004db19
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x18], ebx
lea ebx, [eax + 8]
add esi, 8
mov eax, dword [ebp - 0x14]
cmp ebx, ecx
jae 0x1004f887
mov edi, dword [ebx]
xor edi, dword [esi]
jne 0x1004dd11
add ebx, 4
add esi, 4
cmp ebx, ecx
jb 0x1004dcfc
jmp 0x1004f887
bsf ecx, edi
shr ecx, 3
add ebx, ecx
sub ebx, dword [ebp - 0x18]
jmp 0x1004dc80
mov esi, dword [ebp - 0x60]
lea edx, [eax + 4]
cmp edx, dword [ebp - 0x28]
jae 0x1004f926
mov ecx, dword [edx]
xor ecx, dword [esi]
jne 0x1004dd3e
add edx, 4
add esi, 4
jmp 0x1004dd27
bsf ecx, ecx
shr ecx, 3
add edx, ecx
sub edx, eax
jmp 0x1004dcae
lea esi, [ebx + 1]
lea edx, [ebx + 2]
mov edi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x48]
mov eax, esi
sub eax, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x4c]
mov dword [ebp - 0x58], eax
jbe 0x1004d943
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x18]
mov ecx, 0x80808081
sub esi, dword [ebp - 0x34]
lea eax, [esi + 0xf0]
mul ecx
lea eax, [edi + esi]
shr edx, 7
lea eax, [edx + eax + 1]
mov edx, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x40]
mov eax, 0
ja 0x1004eebe
mov ecx, esi
cmp esi, 0xf
jb 0x1004ee9b
lea eax, [ecx - 0xf]
mov edx, ecx
lea ecx, [edi + 1]
mov byte [edi], 0xf0
cmp eax, 0xff
jb 0x1004ddf4
mov esi, edx
lea eax, [edx - 0x10e]
mov edx, 0x80808081
mov ebx, edi
mul edx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, edi
lea ecx, [edi + ebx + 2]
mov edx, esi
shl eax, 8
sub edi, eax
lea eax, [esi + edi - 0x10e]
mov byte [ecx], al
mov edi, ecx
mov ecx, edx
jmp 0x1004eea2
mov edx, dword [ebp + 0x14]
cmp ecx, 0xffff
ja 0x1004e112
mov eax, edi
mov esi, ecx
sub eax, ecx
mov dword [ebp - 0x30], eax
jbe 0x1004e112
xor eax, eax
cmp edx, 0x7e000000
ja 0x1004eed0
test edx, edx
je 0x1004e2f5
mov eax, dword [ebp + 8]
mov ebx, ecx
add ecx, edx
mov dword [eax + 0x4010], ecx
lea ecx, [edi + edx]
mov dword [eax + 0x4000], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x4004], 2
add dword [ebp - 0x40], ecx
cmp edx, 0xd
jge 0x1004e7dd
mov dword [ebp - 0x1c], ecx
mov ebx, dword [ebp - 0x54]
mov ecx, 0x80808081
sub ebx, dword [ebp - 0x50]
lea eax, [ebx + 0xf0]
mul ecx
mov eax, dword [ebp - 0x1c]
shr edx, 7
add eax, ebx
lea eax, [edx + eax + 1]
cmp eax, dword [ebp - 0x40]
mov eax, 0
ja 0x1004eed0
cmp ebx, 0xf
jb 0x1004f7f7
mov edx, dword [ebp - 0x1c]
lea eax, [ebx - 0xf]
cmp eax, 0xff
lea ecx, [edx + 1]
mov byte [edx], 0xf0
jb 0x1004dee6
mov esi, edx
lea eax, [ebx - 0x10e]
mov edx, 0x80808081
mul edx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, edi
lea ecx, [edi + esi + 2]
shl eax, 8
sub edi, eax
lea eax, [ebx + edi - 0x10e]
mov byte [ecx], al
jmp 0x1004f801
cmp ecx, 0xffff
ja 0x1004e1e8
mov eax, edi
mov esi, ecx
sub eax, ecx
mov dword [ebp - 0x4c], eax
jbe 0x1004e1e8
xor eax, eax
cmp edx, 0x7e000000
ja 0x1004eebe
test edx, edx
je 0x1004e2dd
mov eax, dword [ebp - 0x24]
mov esi, ecx
mov ebx, dword [ebp + 8]
add ecx, eax
mov dword [ebp - 0x58], ecx
sub ecx, edi
test eax, eax
cmove ecx, eax
add esi, edx
lea eax, [edi + edx]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebx + 0x4010], esi
mov dword [ebx + 0x4000], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x4004], 2
add dword [ebp - 0x40], ecx
cmp edx, 0xd
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], eax
jge 0x1004eed8
mov esi, dword [ebp - 0x54]
mov ecx, 0x80808081
sub esi, dword [ebp - 0x38]
lea eax, [esi + 0xf0]
mul ecx
mov eax, dword [ebp - 0x3c]
shr edx, 7
add eax, esi
lea eax, [edx + eax + 1]
mov edx, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x40]
mov eax, 0
ja 0x1004eebe
mov ecx, esi
cmp esi, 0xf
jb 0x1004f85e
mov ebx, dword [ebp - 0x3c]
lea eax, [ecx - 0xf]
mov edx, ecx
cmp eax, 0xff
lea ecx, [ebx + 1]
mov byte [ebx], 0xf0
jb 0x1004dff2
mov esi, edx
lea eax, [edx - 0x10e]
mov edx, 0x80808081
mul edx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, edi
lea ecx, [edi + ebx + 2]
mov edx, esi
shl eax, 8
sub edi, eax
lea eax, [esi + edi - 0x10e]
mov byte [ecx], al
mov edi, ecx
mov ecx, edx
jmp 0x1004f868
xor eax, eax
cmp edx, 0x7e000000
ja 0x1004eebe
test edx, edx
je 0x1004e2dd
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx + 0x4008]
mov esi, dword [ecx + 0x4000]
mov ecx, dword [ecx + 0x4010]
add ecx, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x60], ecx
sub ecx, esi
test eax, eax
cmove ecx, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x400c], 0
mov dword [eax + 0x4010], edx
mov ebx, ecx
add dword [ebp - 0x40], ecx
lea ecx, [edi + edx]
cmp edx, 0xd
mov dword [eax + 0x4000], ecx
mov dword [ebp - 0x48], ebx
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x5c]
mov dword [eax + 0x4004], 2
mov dword [ebp - 0x18], ecx
jge 0x1004e30d
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x48]
mov ecx, 0x80808081
sub esi, dword [ebp - 0x18]
lea eax, [esi + 0xf0]
mul ecx
lea eax, [edi + esi]
shr edx, 7
lea eax, [edx + eax + 1]
mov edx, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x40]
mov eax, 0
ja 0x1004eebe
mov ecx, esi
cmp esi, 0xf
jb 0x1004f7e4
lea eax, [ecx - 0xf]
mov edx, ecx
lea ecx, [edi + 1]
mov byte [edi], 0xf0
cmp eax, 0xff
jb 0x1004e107
mov esi, edx
lea eax, [edx - 0x10e]
mov edx, 0x80808081
mov ebx, edi
mul edx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, edi
lea ecx, [edi + ebx + 2]
mov edx, esi
shl eax, 8
sub edi, eax
lea eax, [esi + edi - 0x10e]
mov byte [ecx], al
mov edi, ecx
mov ecx, edx
jmp 0x1004f7eb
xor eax, eax
cmp edx, 0x7e000000
ja 0x1004eed0
test edx, edx
je 0x1004e2f5
mov eax, dword [ebp + 8]
mov esi, ecx
add ecx, edx
mov dword [eax + 0x4010], ecx
lea ecx, [edi + edx]
mov dword [eax + 0x4000], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x4004], 2
add dword [ebp - 0x40], ecx
cmp edx, 0xd
jge 0x1004eb47
mov dword [ebp - 0x24], ecx
mov esi, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x54]
mov ecx, 0x80808081
sub ebx, esi
lea eax, [ebx + 0xf0]
mul ecx
mov eax, dword [ebp - 0x24]
shr edx, 7
add eax, ebx
lea eax, [edx + eax + 1]
cmp eax, dword [ebp - 0x40]
mov eax, 0
ja 0x1004eed0
cmp ebx, 0xf
jb 0x1004f80a
mov edx, dword [ebp - 0x24]
lea eax, [ebx - 0xf]
cmp eax, 0xff
lea ecx, [edx + 1]
mov byte [edx], 0xf0
jb 0x1004e1e1
mov dword [ebp - 0x24], edx
lea eax, [ebx - 0x10e]
mov edx, 0x80808081
mul edx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x24]
mov eax, edi
shl eax, 8
lea ecx, [edi + ecx + 2]
sub edi, eax
lea eax, [ebx + edi - 0x10e]
mov byte [ecx], al
jmp 0x1004f814
xor eax, eax
cmp edx, 0x7e000000
ja 0x1004eebe
test edx, edx
je 0x1004e2dd
mov eax, dword [ebp - 0x24]
mov esi, ecx
mov ebx, dword [ebp + 8]
add ecx, eax
mov dword [ebp - 0x38], ecx
sub ecx, edi
test eax, eax
cmove ecx, eax
add esi, edx
lea eax, [edi + edx]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebx + 0x4010], esi
mov dword [ebx + 0x4000], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x4004], 2
add dword [ebp - 0x40], ecx
cmp edx, 0xd
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x20], eax
jge 0x1004f360
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x44]
mov ecx, 0x80808081
sub esi, dword [ebp - 0x20]
lea eax, [esi + 0xf0]
mul ecx
lea eax, [edi + esi]
shr edx, 7
lea eax, [edx + eax + 1]
mov edx, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x40]
mov eax, 0
ja 0x1004eebe
mov ecx, esi
cmp esi, 0xf
jb 0x1004f874
lea eax, [ecx - 0xf]
mov edx, ecx
lea ecx, [edi + 1]
mov byte [edi], 0xf0
cmp eax, 0xff
jb 0x1004e2d2
mov esi, edx
lea eax, [edx - 0x10e]
mov edx, 0x80808081
mov ebx, edi
mul edx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, edi
lea ecx, [edi + ebx + 2]
mov edx, esi
shl eax, 8
sub edi, eax
lea eax, [esi + edi - 0x10e]
mov byte [ecx], al
mov edi, ecx
mov ecx, edx
jmp 0x1004f87b
cmp dword [ebp + 0x18], 0
jle 0x1004eebe
mov eax, dword [ebp + 0x10]
mov byte [eax], 0
xor eax, eax
inc eax
jmp 0x1004eebe
cmp dword [ebp + 0x18], 0
jle 0x1004eed0
mov eax, dword [ebp + 0x10]
mov byte [eax], 0
xor eax, eax
inc eax
jmp 0x1004eed0
mov ecx, esi
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x2c]
mov eax, esi
mov edi, edx
mov dword [ebp - 0x18], esi
sub eax, edx
mov dword [ebp - 0x30], eax
mov eax, edx
mov edx, dword [ebp - 0x60]
sub eax, ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
add eax, 0xfffffffb
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x14]
lea eax, [eax + esi - 0xb]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x44]
test eax, eax
cmove edx, eax
imul eax, dword [esi], 0x9e3779b1
mov dword [ebp - 0x60], edx
lea edx, [esi + 2]
shr eax, 0x14
mov dword [ecx + eax*4], edi
mov eax, edi
lea edi, [esi + 1]
mov ecx, ebx
inc eax
shl ecx, 6
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x64]
or ecx, 1
mov dword [ebp - 0x68], ecx
add eax, 0xfffffffd
mov dword [ebp - 0x24], eax
lea eax, [esi + 4]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x48], esi
mov eax, dword [edi]
mov dword [ebp - 0x20], edi
mov edi, ebx
mov esi, edx
mov edx, dword [ebp + 8]
imul eax, eax, 0x9e3779b1
mov dword [ebp - 0x14], edi
shr eax, 0x14
mov edx, dword [edx + eax*4]
cmp edx, dword [ebp - 0x2c]
jae 0x1004e3be
mov edx, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x3c]
mov edx, dword [edx + eax*4]
lea edi, [ebx + edx]
mov ebx, dword [ebp - 0x44]
add edx, dword [ebp - 0x58]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x4c], ebx
jmp 0x1004e3cd
mov ebx, dword [ebp - 0x30]
lea edi, [ebx + edx]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x4c], edi
mov edi, dword [esi]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x10]
mov dword [ebx + eax*4], edi
lea ebx, [edx + 0xffff]
cmp ebx, edi
jb 0x1004e3f1
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov eax, dword [eax]
cmp eax, dword [edi]
je 0x1004e41c
mov eax, esi
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x20], esi
sub eax, dword [ebp - 0x30]
add edx, esi
mov dword [ebp - 0x10], eax
lea eax, [ecx + 1]
shr ecx, 6
cmp edx, dword [ebp - 0x34]
mov edi, ecx
mov ecx, eax
mov eax, dword [ebp - 0x28]
jbe 0x1004e38b
jmp 0x1004e07d
sub dword [ebp - 0x10], edx
mov esi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov edi, edx
cmp eax, esi
mov dword [ebp - 0x14], eax
jbe 0x1004e44a
cmp edi, dword [ebp - 0x18]
jbe 0x1004e44a
mov ecx, dword [ebp - 0x14]
mov al, byte [edi - 1]
lea edx, [edi - 1]
cmp al, byte [ecx - 1]
lea ebx, [ecx - 1]
mov dword [ebp - 0x1c], ebx
je 0x1004e425
mov dword [ebp - 0x20], edi
sub edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x48]
mov edx, 0x80808081
mov eax, edi
lea ecx, [ebx + edi]
mul edx
shr edx, 7
lea eax, [edx + ecx + 9]
cmp eax, dword [ebp - 0x40]
ja 0x1004f8e2
mov edx, dword [ebp - 0x20]
lea ecx, [ebx + 1]
cmp edi, 0xf
mov eax, edi
jb 0x1004e510
lea edi, [eax - 0xf]
mov byte [ebx], 0xf0
mov edx, edi
cmp edi, 0xff
mov edi, ebx
mov ebx, dword [ebp - 0x18]
jl 0x1004e508
mov edi, edx
cmp edx, 0x1fe
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, 0x1fd
cmovge edi, eax
lea eax, [edx + 0xef]
mov dword [ebp - 0x1c], eax
lea eax, [edi + ebx]
mov ebx, 0x80808081
neg eax
lea eax, [edx + eax + 0xef]
mul ebx
shr edx, 7
inc edx
push edx
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x48]
sub eax, dword [ebp - 0x18]
sub eax, edi
mov edi, dword [ebp - 0x48]
mul ebx
mov ebx, dword [ebp - 0x18]
shr edx, 7
mov eax, edx
lea ecx, [ecx + edx + 2]
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x28]
lea edx, [eax + edx - 0x10e]
mov eax, dword [ebp - 0x28]
mov byte [ecx], dl
mov edx, dword [ebp - 0x20]
inc ecx
jmp 0x1004e51e
mov edi, ebx
mov ebx, eax
shl al, 4
mov byte [edi], al
mov eax, ebx
mov ebx, dword [ebp - 0x18]
add eax, ecx
movq xmm0, qword [ebx]
add ebx, 8
movq qword [ecx], xmm0
add ecx, 8
cmp ecx, eax
jb 0x1004e520
mov ebx, edx
mov edx, dword [ebp - 0x10]
cmp esi, dword [ebp - 0x44]
mov dword [ebp - 0x28], eax
mov word [eax], dx
mov dword [ebp - 0x18], ebx
je 0x1004e6b0
mov eax, dword [ebp - 0x14]
lea edx, [eax + 4]
lea eax, [ebx + 4]
cmp dword [ebp - 0x24], eax
jbe 0x1004fac8
mov ecx, dword [eax]
xor ecx, dword [edx]
je 0x1004e71f
bsf ebx, ecx
shr ebx, 3
mov eax, dword [ebp - 0x18]
lea eax, [ebx + eax + 4]
mov dword [ebp - 0x18], eax
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
mov ecx, dword [ebp - 0x28]
shr edx, 7
lea eax, [ecx + edx + 8]
cmp eax, dword [ebp - 0x40]
ja 0x1004f8e2
mov al, byte [edi]
mov edx, ecx
add ecx, 2
cmp ebx, 0xf
jb 0x1004e60f
add al, 0xf
mov byte [edi], al
lea eax, [ebx - 0xf]
mov edi, ecx
mov dword [ecx], 0xffffffff
cmp eax, 0x3fc
jb 0x1004e5f5
lea ecx, [edx + 6]
mov edi, edx
lea eax, [ebx - 0x40b]
mov edx, 0x80808081
mul edx
mov esi, edx
shr esi, 9
lea eax, [esi*4 + 4]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
imul eax, esi, 0xfffffc04
lea edi, [edi + esi*4 + 6]
lea eax, [eax + ebx - 0x40b]
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
lea edi, [edi + ecx + 1]
add eax, ecx
mov dword [ebp - 0x48], edi
mov byte [edi - 1], al
jmp 0x1004e616
add al, bl
mov dword [ebp - 0x48], ecx
mov byte [edi], al
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x30]
cmp edi, dword [ebp - 0x34]
jae 0x1004e07d
imul ecx, dword [edi - 2], 0x9e3779b1
mov edx, dword [ebp + 8]
lea eax, [edi - 2]
sub eax, esi
shr ecx, 0x14
mov dword [edx + ecx*4], eax
imul ecx, dword [edi], 0x9e3779b1
sub edi, esi
shr ecx, 0x14
mov eax, dword [edx + ecx*4]
cmp eax, dword [ebp - 0x2c]
jae 0x1004e666
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x30]
mov eax, dword [eax + ecx*4]
add edx, eax
add eax, dword [ebp - 0x58]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x44]
jmp 0x1004e66f
lea edx, [esi + eax]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4], edi
lea edx, [eax + 0xffff]
cmp edx, edi
jb 0x1004e7b9
mov ecx, dword [ebp - 0x14]
mov edx, edi
mov edi, dword [ebp - 0x18]
mov ecx, dword [ecx]
cmp ecx, dword [edi]
jne 0x1004e7b9
mov edi, dword [ebp - 0x48]
sub edx, eax
mov ebx, dword [ebp - 0x18]
lea esi, [edi + 1]
mov byte [edi], 0
mov eax, esi
mov esi, dword [ebp - 0x4c]
jmp 0x1004e537
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x10], edi
sub eax, edx
lea esi, [edx + 4]
lea edx, [ebx + 4]
add eax, ebx
cmp eax, ecx
cmova eax, ecx
lea edi, [eax - 3]
cmp edi, edx
jbe 0x1004facf
mov ebx, dword [edx]
xor ebx, dword [esi]
je 0x1004e74e
mov edi, dword [ebp - 0x10]
bsf ebx, ebx
shr ebx, 3
mov ecx, dword [ebp - 0x18]
lea ecx, [ebx + ecx + 4]
cmp ecx, eax
mov dword [ebp - 0x18], ecx
jne 0x1004e575
mov edi, dword [ebp + 0xc]
cmp dword [ebp - 0x24], eax
mov edx, eax
mov esi, edi
jbe 0x1004e788
mov ecx, dword [eax]
xor ecx, dword [edi]
je 0x1004e782
mov edi, dword [ebp - 0x10]
bsf edx, ecx
shr edx, 3
add ebx, edx
add eax, edx
jmp 0x1004e572
mov edx, dword [ebp - 0x14]
add ebx, 8
add edx, 8
cmp ebx, dword [ebp - 0x24]
jae 0x1004f8b4
mov ecx, dword [ebx]
xor ecx, dword [edx]
jne 0x1004e73f
add ebx, 4
add edx, 4
jmp 0x1004e728
bsf ecx, ecx
shr ecx, 3
add ebx, ecx
sub ebx, eax
jmp 0x1004e56b
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
lea ebx, [ecx + 8]
add esi, 8
cmp ebx, edi
jae 0x1004f954
mov ecx, dword [ebx]
xor ecx, dword [esi]
jne 0x1004e770
add ebx, 4
add esi, 4
jmp 0x1004e75a
bsf ecx, ecx
mov edi, dword [ebp - 0x10]
shr ecx, 3
add ebx, ecx
sub ebx, edx
jmp 0x1004e6e5
mov esi, dword [ebp - 0x6c]
lea edx, [eax + 4]
cmp edx, dword [ebp - 0x24]
jae 0x1004faf5
mov edi, dword [ebp - 0x10]
mov ecx, dword [edx]
xor ecx, dword [esi]
jne 0x1004e7aa
add edx, 4
add esi, 4
cmp edx, dword [ebp - 0x24]
jb 0x1004e794
jmp 0x1004faf8
bsf ecx, ecx
shr ecx, 3
add edx, ecx
sub edx, eax
jmp 0x1004e716
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x5c]
lea edi, [eax + 1]
lea edx, [eax + 2]
mov ecx, edi
sub ecx, esi
cmp edx, dword [ebp - 0x34]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x68]
jbe 0x1004e384
jmp 0x1004e07d
mov ecx, dword [ebp + 0xc]
mov eax, ecx
lea esi, [ecx + 1]
sub eax, edi
mov dword [ebp - 0x14], eax
lea eax, [edx + ecx - 0xb]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x24], eax
lea eax, [edx - 5]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x18], eax
mov eax, ecx
sub eax, ebx
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
imul eax, dword [ecx], 0x9e3779b1
shr eax, 0x14
mov dword [edx + eax*4], edi
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0x18]
mov eax, ebx
inc edi
shl eax, 6
or eax, 1
mov dword [ebp - 0x34], eax
add ecx, 0xfffffffd
mov dword [ebp - 0x20], ecx
mov ecx, ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [esi]
mov dword [ebp - 0x2c], ecx
mov ecx, eax
mov eax, esi
mov dword [ebp - 0x28], eax
mov eax, edx
mov edx, dword [ebp + 8]
imul esi, ebx, 0x9e3779b1
shr esi, 0x14
mov dword [ebp - 0x10], eax
mov ebx, dword [eax]
mov eax, dword [ebp + 8]
mov edx, dword [edx + esi*4]
mov dword [eax + esi*4], edi
cmp edx, dword [ebp - 0x30]
jb 0x1004e876
lea esi, [edx + 0xffff]
cmp esi, edi
jb 0x1004e876
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov esi, dword [edx]
cmp esi, dword [eax]
je 0x1004e898
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x2c]
lea esi, [ecx + 1]
shr ecx, 6
mov dword [ebp - 0x2c], ecx
mov ecx, esi
mov edi, eax
add edx, eax
sub edi, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x24]
jbe 0x1004e83c
jmp 0x1004de65
mov ebx, dword [ebp - 0x28]
cmp edx, dword [ebp - 0x4c]
mov edi, edx
jbe 0x1004e8b8
cmp ebx, dword [ebp - 0x50]
jbe 0x1004e8b8
mov cl, byte [ebx - 1]
lea eax, [ebx - 1]
lea edx, [edi - 1]
mov dword [ebp - 0x28], eax
cmp cl, byte [edi - 1]
je 0x1004e898
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], ebx
mov edx, 0x80808081
sub ebx, esi
mov ecx, eax
add eax, ebx
mov dword [ebp - 0x10], eax
mov eax, ebx
mul edx
mov eax, dword [ebp - 0x10]
shr edx, 7
lea eax, [edx + eax + 9]
cmp eax, dword [ebp - 0x40]
ja 0x1004fa48
mov edx, ecx
inc ecx
cmp ebx, 0xf
jb 0x1004e974
lea eax, [ebx - 0xf]
mov byte [edx], 0xf0
cmp eax, 0xff
jl 0x1004e96f
cmp eax, 0x1fe
mov edx, eax
mov eax, 0x1fd
cmovge edx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], edx
add eax, 0xef
mov dword [ebp - 0x28], eax
lea eax, [edx + esi]
mov edx, dword [ebp - 0x2c]
neg eax
lea eax, [edx + eax + 0xef]
mov edx, 0x80808081
mul edx
shr edx, 7
inc edx
push edx
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov ecx, 0x80808081
sub eax, esi
sub eax, dword [ebp - 0x10]
mul ecx
mov ecx, dword [ebp - 0x1c]
shr edx, 7
mov eax, edx
shl eax, 8
lea ecx, [ecx + edx + 2]
sub edx, eax
lea eax, [ebx + edx - 0x10e]
mov edx, dword [ebp - 0x1c]
mov byte [ecx], al
inc ecx
jmp 0x1004e97b
mov eax, ebx
shl al, 4
mov byte [edx], al
add ebx, ecx
movq xmm0, qword [esi]
add esi, 8
movq qword [ecx], xmm0
add ecx, 8
cmp ecx, ebx
jb 0x1004e97d
mov ecx, dword [ebp - 0x2c]
mov eax, edx
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x10], eax
lea edx, [edi + 4]
mov dword [ebp - 0x2c], ebx
mov eax, ecx
sub eax, edi
mov word [ebx], ax
lea eax, [ecx + 4]
mov ecx, dword [ebp - 0x20]
cmp ecx, eax
jbe 0x1004faba
mov esi, dword [eax]
mov ecx, dword [ebp - 0x50]
xor esi, dword [edx]
je 0x1004eada
bsf ebx, esi
shr ebx, 3
mov esi, dword [ebp - 0x2c]
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
lea eax, [esi + edx + 8]
cmp eax, dword [ebp - 0x40]
ja 0x1004fa48
mov eax, dword [ebp - 0x50]
mov ecx, esi
lea edx, [esi + 2]
mov esi, dword [ebp - 0x10]
cmp ebx, 0xf
lea eax, [ebx + eax + 4]
mov dword [ebp - 0x50], eax
mov al, byte [esi]
jb 0x1004ea70
add al, 0xf
mov byte [esi], al
lea eax, [ebx - 0xf]
mov dword [edx], 0xffffffff
cmp eax, 0x3fc
jb 0x1004ea56
lea eax, [ebx - 0x40b]
mov edx, 0x80808081
mov esi, ecx
add ecx, 6
mul edx
mov edi, edx
shr edi, 9
lea eax, [edi*4 + 4]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
imul eax, edi, 0xfffffc04
lea edx, [esi + edi*4 + 6]
lea eax, [eax + ebx - 0x40b]
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
lea edx, [edx + ecx + 1]
add eax, ecx
mov dword [ebp - 0x1c], edx
mov byte [edx - 1], al
jmp 0x1004ea77
add al, bl
mov dword [ebp - 0x1c], edx
mov byte [esi], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp + 8]
cmp eax, dword [ebp - 0x24]
jae 0x1004de65
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x14]
imul ecx, dword [esi - 2], 0x9e3779b1
lea eax, [esi - 2]
sub eax, edi
shr ecx, 0x14
mov dword [edx + ecx*4], eax
mov eax, esi
imul ecx, dword [esi], 0x9e3779b1
sub eax, edi
shr ecx, 0x14
mov edi, dword [edx + ecx*4]
mov dword [edx + ecx*4], eax
cmp edi, dword [ebp - 0x30]
jb 0x1004eb06
lea ecx, [edi + 0xffff]
cmp ecx, eax
jb 0x1004eb06
add edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x50]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x1004eb06
mov eax, dword [ebp - 0x1c]
lea ebx, [eax + 1]
mov byte [eax], 0
jmp 0x1004e997
lea ebx, [ecx + 8]
mov ecx, dword [ebp - 0x20]
add edi, 8
mov edx, edi
cmp ebx, ecx
jae 0x1004eb28
mov esi, dword [ebx]
xor esi, dword [edx]
jne 0x1004eaf7
add ebx, 4
add edx, 4
jmp 0x1004eae5
bsf edx, esi
shr edx, 3
add ebx, edx
sub ebx, eax
jmp 0x1004e9cb
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x5c]
lea esi, [eax + 1]
lea edx, [eax + 2]
mov eax, dword [ebp - 0x34]
mov edi, esi
sub edi, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x24]
jbe 0x1004e833
jmp 0x1004de65
mov ecx, dword [ebp - 0x18]
lea esi, [ecx - 1]
cmp ebx, esi
jb 0x1004f8e9
cmp ebx, dword [ebp - 0x18]
jae 0x1004eaff
mov dl, byte [edx]
lea esi, [ebx + 1]
cmp dl, byte [ebx]
cmove ebx, esi
jmp 0x1004eaff
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x5c]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x28], eax
lea eax, [edx + ecx - 0xb]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x30], eax
mov eax, ecx
sub eax, esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x20], eax
imul eax, dword [ecx], 0x9e3779b1
add edx, 0xfffffffb
mov dword [ebp - 0x34], edx
add edx, 0xfffffffd
mov dword [ebp - 0x1c], edx
shr eax, 0x14
mov dword [esi + eax*4], edi
mov eax, ebx
lea esi, [ecx + 1]
inc edi
add ecx, 2
shl eax, 6
or eax, 1
mov edx, eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x24], eax
mov eax, dword [esi]
mov dword [ebp - 0x2c], eax
mov eax, ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], ebx
mov ebx, edi
imul edi, dword [ebp - 0x2c], 0x9e3779b1
mov ecx, dword [ebp + 8]
mov esi, dword [eax]
shr edi, 0x14
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp + 8]
mov ecx, dword [ecx + edi*4]
mov dword [esi + edi*4], ebx
mov esi, dword [ebp - 0x28]
lea edi, [ecx + 0xffff]
cmp edi, ebx
jb 0x1004ebdc
add ecx, esi
mov ebx, dword [ebp - 0x14]
mov edi, dword [ecx]
cmp edi, dword [ebx]
je 0x1004ebfb
mov ecx, dword [ebp - 0x10]
mov edi, eax
sub edi, esi
lea esi, [edx + 1]
shr edx, 6
mov ebx, edx
mov edx, esi
mov esi, eax
add ecx, eax
cmp ecx, dword [ebp - 0x30]
jbe 0x1004eb9f
jmp 0x1004e15a
mov ebx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x20]
mov edi, ecx
jbe 0x1004ec1b
cmp ebx, dword [ebp - 0x50]
jbe 0x1004ec1b
mov dl, byte [ebx - 1]
lea eax, [ebx - 1]
lea ecx, [edi - 1]
mov dword [ebp - 0x14], eax
cmp dl, byte [edi - 1]
je 0x1004ebfb
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], ebx
mov edx, 0x80808081
sub ebx, esi
mov ecx, eax
add eax, ebx
mov dword [ebp - 0x10], eax
mov eax, ebx
mul edx
mov eax, dword [ebp - 0x10]
shr edx, 7
lea eax, [edx + eax + 9]
cmp eax, dword [ebp - 0x40]
ja 0x1004fa48
mov edx, ecx
inc ecx
cmp ebx, 0xf
jb 0x1004ecd7
lea eax, [ebx - 0xf]
mov byte [edx], 0xf0
cmp eax, 0xff
jl 0x1004ecd2
cmp eax, 0x1fe
mov edx, eax
mov eax, 0x1fd
cmovge edx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], edx
add eax, 0xef
mov dword [ebp - 0x14], eax
lea eax, [edx + esi]
mov edx, dword [ebp - 0x2c]
neg eax
lea eax, [edx + eax + 0xef]
mov edx, 0x80808081
mul edx
shr edx, 7
inc edx
push edx
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov ecx, 0x80808081
sub eax, esi
sub eax, dword [ebp - 0x10]
mul ecx
mov ecx, dword [ebp - 0x24]
shr edx, 7
mov eax, edx
shl eax, 8
lea ecx, [ecx + edx + 2]
sub edx, eax
lea eax, [ebx + edx - 0x10e]
mov edx, dword [ebp - 0x24]
mov byte [ecx], al
inc ecx
jmp 0x1004ecde
mov eax, ebx
shl al, 4
mov byte [edx], al
add ebx, ecx
movq xmm0, qword [esi]
add esi, 8
movq qword [ecx], xmm0
add ecx, 8
cmp ecx, ebx
jb 0x1004ece0
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x1c]
mov eax, esi
lea edx, [edi + 4]
mov dword [ebp - 0x2c], ebx
sub eax, edi
mov word [ebx], ax
lea eax, [esi + 4]
cmp ecx, eax
jbe 0x1004fac1
mov ecx, esi
mov esi, dword [eax]
xor esi, dword [edx]
je 0x1004ee25
bsf ebx, esi
mov esi, ecx
shr ebx, 3
mov edi, dword [ebp - 0x2c]
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
lea eax, [edi + edx + 8]
cmp eax, dword [ebp - 0x40]
ja 0x1004fa48
mov ecx, edi
lea edx, [edi + 2]
mov edi, dword [ebp - 0x10]
lea esi, [ebx + esi + 4]
cmp ebx, 0xf
mov al, byte [edi]
jb 0x1004edc7
add al, 0xf
mov byte [edi], al
lea eax, [ebx - 0xf]
mov dword [edx], 0xffffffff
cmp eax, 0x3fc
jb 0x1004edad
lea eax, [ebx - 0x40b]
mov edx, 0x80808081
add ecx, 6
mul edx
mov edi, edx
shr edi, 9
lea eax, [edi*4 + 4]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x2c]
lea edx, [eax + edi*4 + 6]
imul eax, edi, 0xfffffc04
lea eax, [eax + ebx - 0x40b]
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
lea edx, [edx + ecx + 1]
add eax, ecx
mov dword [ebp - 0x24], edx
mov byte [edx - 1], al
jmp 0x1004edce
add al, bl
mov dword [ebp - 0x24], edx
mov byte [edi], al
cmp esi, dword [ebp - 0x30]
mov edx, dword [ebp + 8]
jae 0x1004ee93
imul ecx, dword [esi - 2], 0x9e3779b1
mov ebx, dword [ebp - 0x28]
lea eax, [esi - 2]
shr ecx, 0x14
sub eax, ebx
mov dword [edx + ecx*4], eax
mov ecx, esi
imul eax, dword [esi], 0x9e3779b1
sub ecx, ebx
shr eax, 0x14
mov edi, dword [edx + eax*4]
mov dword [edx + eax*4], ecx
lea eax, [edi + 0xffff]
cmp eax, ecx
jb 0x1004ee57
add edi, ebx
mov eax, dword [edi]
cmp eax, dword [esi]
jne 0x1004ee57
mov eax, dword [ebp - 0x24]
lea ebx, [eax + 1]
mov byte [eax], 0
mov dword [ebp - 0x10], eax
jmp 0x1004ecf8
mov esi, ecx
lea ebx, [ecx + 8]
mov ecx, dword [ebp - 0x1c]
add edi, 8
mov edx, edi
mov edi, esi
cmp ebx, ecx
jae 0x1004ee78
mov esi, dword [ebx]
xor esi, dword [edx]
jne 0x1004ee46
add ebx, 4
add edx, 4
jmp 0x1004ee34
bsf edx, esi
mov esi, edi
shr edx, 3
add ebx, edx
sub ebx, eax
jmp 0x1004ed27
mov eax, esi
inc esi
mov edx, dword [ebp - 0x4c]
mov edi, esi
lea ecx, [eax + 2]
mov dword [ebp - 0x50], eax
sub edi, ebx
cmp ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x5c]
jbe 0x1004eb9a
jmp 0x1004e15a
mov ecx, dword [ebp - 0x34]
lea esi, [ecx - 1]
cmp ebx, esi
jb 0x1004f900
cmp ebx, dword [ebp - 0x34]
jb 0x1004f917
mov esi, edi
jmp 0x1004ee50
mov dword [ebp - 0x50], esi
jmp 0x1004e15a
mov eax, ecx
shl al, 4
mov byte [edi], al
lea eax, [edi + 1]
push ecx
push dword [ebp - 0x34]
push eax
mov esi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [edi + esi + 1]
sub eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [esi + 0x4008], ecx
mov dword [esi + 0x4010], edx
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x58]
add eax, 0xfffffffb
mov edx, esi
lea ebx, [esi + 1]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x14]
sub edx, edi
lea eax, [eax + esi - 0xb]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
test eax, eax
cmove ecx, eax
imul eax, dword [esi], 0x9e3779b1
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp + 8]
shr eax, 0x14
mov dword [ecx + eax*4], edi
mov eax, dword [ebp - 0x5c]
lea ecx, [esi + 2]
mov esi, edx
inc edi
mov dword [ebp - 0x44], esi
shl eax, 6
or eax, 1
mov edx, eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x60], edx
add eax, 0xfffffffd
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + 4]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x10], ecx
imul ecx, dword [ebp - 0x28], 0x9e3779b1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], ebx
shr ecx, 0x14
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
cmp ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov dword [eax + ecx*4], edi
mov ecx, esi
cmovb ecx, dword [ebp - 0x34]
cmp ebx, dword [ebp - 0x4c]
jb 0x1004ef9f
mov eax, dword [ebp - 0x14]
add eax, 0xffff
cmp eax, edi
jb 0x1004ef9f
add ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
mov eax, dword [ecx]
cmp eax, dword [esi]
je 0x1004efc3
mov ebx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x44]
lea eax, [edx + 1]
shr edx, 6
mov dword [ebp - 0x30], edx
mov edx, eax
mov edi, ebx
add ecx, ebx
sub edi, esi
cmp ecx, dword [ebp - 0x18]
jbe 0x1004ef52
jmp 0x1004df68
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x2c]
cmovb ebx, dword [ebp - 0x24]
sub edi, eax
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x20]
mov edx, ecx
cmp ecx, ebx
jbe 0x1004eff6
cmp edi, esi
jbe 0x1004eff6
lea eax, [edi - 1]
lea ecx, [edx - 1]
mov dword [ebp - 0x20], eax
mov ah, byte [edi - 1]
cmp ah, byte [edx - 1]
je 0x1004efd8
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], edi
sub edi, esi
mov dword [ebp - 0x10], edx
mov edx, 0x80808081
lea ecx, [eax + edi]
mov eax, edi
mul edx
shr edx, 7
lea eax, [edx + ecx + 9]
cmp eax, dword [ebp - 0x40]
ja 0x1004f8e2
mov eax, dword [ebp - 0x3c]
cmp edi, 0xf
mov edx, edi
lea ecx, [eax + 1]
jb 0x1004f0be
mov eax, dword [ebp - 0x3c]
lea edi, [edx - 0xf]
cmp edi, 0xff
mov byte [eax], 0xf0
mov eax, edi
jl 0x1004f0b6
cmp eax, 0x1fe
mov edi, eax
mov eax, 0x1fd
mov dword [ebp - 0x14], edx
cmovge edi, eax
mov dword [ebp - 0x20], edi
mov edi, dword [ebp - 0x28]
lea eax, [edi + 0xef]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x20]
add eax, esi
mov esi, 0x80808081
neg eax
lea eax, [edi + eax + 0xef]
mul esi
shr edx, 7
inc edx
push edx
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x20]
mul esi
mov esi, dword [ebp - 0x38]
shr edx, 7
mov eax, edx
lea ecx, [ecx + edx + 2]
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x14]
lea eax, [eax + edx - 0x10e]
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x30]
mov byte [ecx], al
inc ecx
jmp 0x1004f0cb
mov edi, dword [ebp - 0x3c]
mov eax, edx
shl al, 4
mov byte [edi], al
mov edi, dword [ebp - 0x30]
add edx, ecx
movq xmm0, qword [esi]
add esi, 8
movq qword [ecx], xmm0
add ecx, 8
cmp ecx, edx
jb 0x1004f0cd
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x28]
cmp ebx, dword [ebp - 0x24]
mov dword [ebp - 0x14], edx
mov word [edx], di
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x28], eax
je 0x1004f24b
mov eax, dword [ebp - 0x10]
lea edx, [eax + 4]
lea eax, [esi + 4]
cmp dword [ebp - 0x1c], eax
jbe 0x1004fad6
mov ecx, dword [eax]
xor ecx, dword [edx]
je 0x1004f2af
bsf ebx, ecx
shr ebx, 3
mov eax, dword [ebp - 0x38]
lea eax, [ebx + eax + 4]
mov dword [ebp - 0x38], eax
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
mov ecx, dword [ebp - 0x14]
shr edx, 7
lea eax, [ecx + edx + 8]
cmp eax, dword [ebp - 0x40]
ja 0x1004f8e2
mov edx, ecx
lea edi, [ecx + 2]
mov ecx, dword [ebp - 0x28]
cmp ebx, 0xf
mov al, byte [ecx]
jb 0x1004f1c7
mov esi, dword [ebp - 0x38]
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [edi], 0xffffffff
cmp eax, 0x3fc
jb 0x1004f1ad
lea ecx, [edx + 6]
lea eax, [ebx - 0x40b]
mov edx, 0x80808081
mul edx
mov edi, edx
shr edi, 9
lea eax, [edi*4 + 4]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov eax, edi
imul eax, eax, 0xfffffc04
lea eax, [eax + ebx - 0x40b]
lea edi, [ecx + edi*4 + 6]
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
lea edi, [edi + ecx + 1]
add eax, ecx
mov dword [ebp - 0x3c], edi
mov byte [edi - 1], al
jmp 0x1004f1d1
mov esi, dword [ebp - 0x38]
add al, bl
mov dword [ebp - 0x3c], edi
mov byte [ecx], al
cmp esi, dword [ebp - 0x18]
jae 0x1004df68
imul ecx, dword [esi - 2], 0x9e3779b1
mov edx, dword [ebp - 0x44]
mov ebx, dword [ebp + 8]
lea eax, [esi - 2]
mov edi, esi
shr ecx, 0x14
sub eax, edx
sub edi, edx
mov dword [ebx + ecx*4], eax
imul ecx, dword [esi], 0x9e3779b1
shr ecx, 0x14
mov eax, dword [ebx + ecx*4]
mov dword [ebx + ecx*4], edi
mov ebx, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x2c]
cmovb edx, dword [ebp - 0x34]
cmovb ebx, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x4c]
jb 0x1004f33e
lea ecx, [eax + 0xffff]
cmp ecx, edi
jb 0x1004f33e
add edx, eax
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x1004f33e
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x10], edx
sub edi, eax
lea edx, [ecx + 1]
mov byte [ecx], 0
mov eax, ecx
jmp 0x1004f0e5
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x48]
sub eax, edx
add eax, esi
cmp eax, ecx
cmova eax, ecx
mov ecx, esi
lea esi, [edx + 4]
lea edx, [ecx + 4]
lea edi, [eax - 3]
cmp edi, edx
jbe 0x1004fae4
mov ebx, dword [edx]
xor ebx, dword [esi]
je 0x1004f2e1
bsf ebx, ebx
shr ebx, 3
mov ecx, dword [ebp - 0x38]
lea ecx, [ebx + ecx + 4]
cmp ecx, eax
mov dword [ebp - 0x38], ecx
jne 0x1004f126
mov edi, dword [ebp + 0xc]
cmp dword [ebp - 0x1c], eax
mov edx, eax
mov esi, edi
jbe 0x1004f318
mov ecx, dword [eax]
xor ecx, dword [edi]
je 0x1004f312
bsf edx, ecx
shr edx, 3
add ebx, edx
add eax, edx
jmp 0x1004f123
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x38]
lea ebx, [ecx + 8]
add edx, 8
cmp ebx, dword [ebp - 0x1c]
jae 0x1004f979
mov ecx, dword [ebx]
xor ecx, dword [edx]
jne 0x1004f2d2
add ebx, 4
add edx, 4
jmp 0x1004f2bb
bsf ecx, ecx
shr ecx, 3
add ebx, ecx
sub ebx, eax
jmp 0x1004f11c
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x38]
lea ebx, [ecx + 8]
add esi, 8
cmp ebx, edi
jae 0x1004f9d5
mov ecx, dword [ebx]
xor ecx, dword [esi]
jne 0x1004f303
add ebx, 4
add esi, 4
jmp 0x1004f2ed
bsf ecx, ecx
shr ecx, 3
add ebx, ecx
sub ebx, edx
jmp 0x1004f27c
mov esi, dword [ebp - 0x64]
lea edx, [eax + 4]
cmp edx, dword [ebp - 0x1c]
jae 0x1004fa5e
mov ecx, dword [edx]
xor ecx, dword [esi]
jne 0x1004f32f
add edx, 4
add esi, 4
jmp 0x1004f318
bsf ecx, ecx
shr ecx, 3
add edx, ecx
sub edx, eax
jmp 0x1004f2a6
mov ecx, dword [ebp - 0x44]
lea ebx, [esi + 1]
mov eax, esi
mov edx, dword [ebp - 0x60]
mov edi, ebx
mov esi, ecx
sub edi, ecx
lea ecx, [eax + 2]
cmp ecx, dword [ebp - 0x18]
jbe 0x1004ef47
jmp 0x1004df68
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x38]
mov eax, esi
mov dword [ebp - 0x20], esi
sub eax, edi
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x54]
lea ebx, [eax - 5]
lea eax, [edx + esi - 0xb]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], ebx
test eax, eax
cmove ecx, eax
imul eax, dword [esi], 0x9e3779b1
shl edx, 6
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp + 8]
or edx, 1
mov dword [ebp - 0x58], edx
shr eax, 0x14
mov dword [ecx + eax*4], edi
lea eax, [esi + 1]
lea ecx, [esi + 2]
mov dword [ebp - 0x1c], eax
lea eax, [edi + 1]
lea edi, [ebx - 3]
lea ebx, [esi + 4]
mov dword [ebp - 0x30], edi
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x1c], esi
mov eax, dword [esi]
mov ebx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x14], ebx
imul ebx, eax, 0x9e3779b1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], ecx
mov ecx, edi
mov edi, dword [ebp - 0x10]
shr ebx, 0x14
mov eax, dword [eax + ebx*4]
mov edi, dword [edi]
cmp eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], edi
mov edi, dword [ebp + 8]
cmovb ecx, dword [ebp - 0x4c]
mov dword [edi + ebx*4], esi
lea ebx, [eax + 0xffff]
cmp ebx, esi
jb 0x1004f41b
add ecx, eax
mov edi, esi
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ecx]
cmp ebx, dword [esi]
je 0x1004f448
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x34]
lea ebx, [edx + 1]
shr edx, 6
mov dword [ebp - 0x14], ebx
mov ebx, edx
mov edx, dword [ebp - 0x14]
mov esi, eax
add ecx, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
sub esi, edi
cmp ecx, dword [ebp - 0x18]
jbe 0x1004f3d8
jmp 0x1004e248
cmp eax, dword [ebp - 0x2c]
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x20]
cmovb ebx, dword [ebp - 0x24]
sub edi, eax
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x1c]
mov esi, ecx
cmp ecx, ebx
jbe 0x1004f478
cmp edi, edx
jbe 0x1004f478
lea eax, [edi - 1]
lea ecx, [esi - 1]
mov dword [ebp - 0x1c], eax
mov ah, byte [edi - 1]
cmp ah, byte [esi - 1]
je 0x1004f45a
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], edi
sub edi, edx
mov edx, 0x80808081
mov eax, edi
mul edx
shr edx, 7
lea ecx, [ebx + edi]
lea eax, [edx + ecx + 9]
cmp eax, dword [ebp - 0x40]
ja 0x1004f8e2
lea ecx, [ebx + 1]
mov eax, edi
cmp edi, 0xf
jb 0x1004f53b
lea eax, [edi - 0xf]
mov byte [ebx], 0xf0
mov edx, eax
cmp eax, 0xff
mov eax, ebx
mov ebx, dword [ebp - 0x20]
jl 0x1004f536
cmp edx, 0x1fe
mov eax, 0x1fd
mov dword [ebp - 0x10], edi
mov edi, 0x80808081
cmovge edx, eax
mov eax, dword [ebp - 0x1c]
add eax, 0xef
mov dword [ebp - 0x60], eax
lea eax, [edx + ebx]
mov ebx, edx
mov edx, dword [ebp - 0x1c]
neg eax
lea eax, [edx + eax + 0xef]
mul edi
shr edx, 7
inc edx
push edx
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x44]
sub eax, dword [ebp - 0x20]
sub eax, ebx
mov ebx, dword [ebp - 0x20]
mul edi
mov edi, dword [ebp - 0x10]
shr edx, 7
mov eax, edx
lea ecx, [ecx + edx + 2]
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x10]
lea edx, [eax + edx - 0x10e]
mov eax, dword [ebp - 0x44]
mov byte [ecx], dl
inc ecx
jmp 0x1004f545
shl al, 4
mov byte [ebx], al
mov eax, ebx
mov ebx, dword [ebp - 0x20]
add edi, ecx
mov edx, edi
movq xmm0, qword [ebx]
add ebx, 8
mov edi, edx
movq qword [ecx], xmm0
add ecx, 8
cmp ecx, edx
jb 0x1004f549
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
mov word [edx], bx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], eax
cmp ecx, dword [ebp - 0x24]
je 0x1004f6d4
lea eax, [edi + 4]
lea edx, [esi + 4]
cmp dword [ebp - 0x30], eax
jbe 0x1004fadd
mov ecx, dword [eax]
xor ecx, dword [edx]
je 0x1004f735
bsf ebx, ecx
shr ebx, 3
mov eax, dword [ebp - 0x20]
lea eax, [ebx + eax + 4]
mov dword [ebp - 0x20], eax
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
mov ecx, dword [ebp - 0x10]
shr edx, 7
lea eax, [ecx + edx + 8]
cmp eax, dword [ebp - 0x40]
ja 0x1004f8e2
mov edx, ecx
lea edi, [ecx + 2]
mov ecx, dword [ebp - 0x28]
cmp ebx, 0xf
mov al, byte [ecx]
jb 0x1004f63f
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [edi], 0xffffffff
cmp eax, 0x3fc
jb 0x1004f625
lea ecx, [edx + 6]
mov edi, edx
lea eax, [ebx - 0x40b]
mov edx, 0x80808081
mul edx
mov esi, edx
shr esi, 9
lea eax, [esi*4 + 4]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
imul eax, esi, 0xfffffc04
lea edi, [edi + esi*4 + 6]
lea eax, [eax + ebx - 0x40b]
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
lea edi, [edi + ecx + 1]
add eax, ecx
mov dword [ebp - 0x44], edi
mov byte [edi - 1], al
jmp 0x1004f646
add al, bl
mov dword [ebp - 0x44], edi
mov byte [ecx], al
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x34]
cmp edi, dword [ebp - 0x18]
jae 0x1004e248
imul ecx, dword [edi - 2], 0x9e3779b1
mov edx, dword [ebp + 8]
lea eax, [edi - 2]
mov dword [ebp - 0x20], edi
mov ebx, esi
sub eax, esi
shr ecx, 0x14
mov dword [edx + ecx*4], eax
imul ecx, dword [edi], 0x9e3779b1
sub edi, esi
shr ecx, 0x14
mov eax, dword [edx + ecx*4]
mov edx, esi
mov esi, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x2c]
cmovb esi, dword [ebp - 0x24]
cmovb edx, dword [ebp - 0x4c]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp + 8]
mov dword [esi + ecx*4], edi
lea esi, [eax + 0xffff]
cmp esi, edi
jb 0x1004f7c3
add edx, eax
mov esi, edi
mov edi, dword [ebp - 0x20]
mov ecx, dword [edx]
cmp ecx, dword [edi]
jne 0x1004f7c3
mov ecx, dword [ebp - 0x44]
mov ebx, esi
mov esi, edx
sub ebx, eax
lea edi, [ecx + 1]
mov byte [ecx], 0
mov eax, ecx
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
jmp 0x1004f563
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
mov edx, esi
sub eax, esi
add esi, 4
add eax, edi
cmp eax, ecx
cmova eax, ecx
lea ecx, [edi + 4]
lea edi, [eax - 3]
cmp edi, ecx
jbe 0x1004faeb
mov ebx, dword [ecx]
xor ebx, dword [esi]
je 0x1004f763
bsf ebx, ebx
shr ebx, 3
mov ecx, dword [ebp - 0x20]
lea ecx, [ebx + ecx + 4]
cmp ecx, eax
mov dword [ebp - 0x20], ecx
jne 0x1004f5a4
mov edi, dword [ebp + 0xc]
cmp dword [ebp - 0x30], eax
mov edx, eax
mov esi, edi
jbe 0x1004f79d
mov ecx, dword [eax]
xor ecx, dword [edi]
je 0x1004f797
bsf edx, ecx
shr edx, 3
add ebx, edx
add eax, edx
jmp 0x1004f5a1
add esi, 8
lea ebx, [edi + 8]
mov edx, esi
cmp ebx, dword [ebp - 0x30]
jae 0x1004f9a7
mov ecx, dword [ebx]
xor ecx, dword [edx]
jne 0x1004f754
add ebx, 4
add edx, 4
jmp 0x1004f73d
bsf ecx, ecx
shr ecx, 3
add ebx, ecx
sub ebx, eax
jmp 0x1004f59a
mov esi, dword [ebp - 0x20]
add edx, 8
mov dword [ebp - 0x14], ecx
lea ebx, [esi + 8]
mov esi, edx
cmp ebx, edi
jae 0x1004fa01
mov ecx, dword [ebx]
xor ecx, dword [esi]
jne 0x1004f787
add ebx, 4
add esi, 4
jmp 0x1004f771
bsf ecx, ecx
shr ecx, 3
add ebx, ecx
sub ebx, dword [ebp - 0x14]
jmp 0x1004f702
mov esi, dword [ebp - 0x48]
lea edx, [eax + 4]
cmp edx, dword [ebp - 0x30]
jae 0x1004fa8c
mov ecx, dword [edx]
xor ecx, dword [esi]
jne 0x1004f7b4
add edx, 4
add esi, 4
jmp 0x1004f79d
bsf ecx, ecx
shr ecx, 3
add edx, ecx
sub edx, eax
jmp 0x1004f72c
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x58]
lea esi, [ecx + 1]
add ecx, 2
mov eax, esi
sub eax, ebx
cmp ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
jbe 0x1004f3ca
jmp 0x1004e248
mov eax, ecx
shl al, 4
mov byte [edi], al
lea eax, [edi + 1]
push ecx
push dword [ebp - 0x18]
jmp 0x1004eea9
mov ecx, dword [ebp - 0x1c]
mov eax, ebx
shl al, 4
mov byte [ecx], al
lea eax, [ecx + 1]
push ebx
push dword [ebp - 0x50]
jmp 0x1004f819
mov ecx, dword [ebp - 0x24]
mov eax, ebx
shl al, 4
mov byte [ecx], al
lea eax, [ecx + 1]
push ebx
push esi
push eax
mov esi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + ebx + 1]
sub eax, dword [ebp + 0x10]
jmp 0x1004eed0
mov ecx, dword [ebp - 0x3c]
dec ecx
cmp ebx, ecx
jae 0x1004f846
movzx ecx, word [edx]
cmp cx, word [ebx]
jne 0x1004f846
add ebx, 2
add edx, 2
cmp ebx, dword [ebp - 0x3c]
jae 0x1004dcde
mov cl, byte [edx]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
jmp 0x1004dcde
mov edi, dword [ebp - 0x3c]
mov eax, ecx
shl al, 4
mov byte [edi], al
lea eax, [edi + 1]
push ecx
push dword [ebp - 0x38]
jmp 0x1004eea9
mov eax, ecx
shl al, 4
mov byte [edi], al
lea eax, [edi + 1]
push ecx
push dword [ebp - 0x20]
jmp 0x1004eea9
lea ecx, [eax - 1]
cmp ebx, ecx
jae 0x1004f89c
movzx ecx, word [esi]
cmp cx, word [ebx]
jne 0x1004f89c
add ebx, 2
add esi, 2
mov edx, dword [ebp - 0x18]
cmp ebx, eax
jae 0x1004f8ad
mov cl, byte [esi]
lea esi, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, esi
sub ebx, edx
jmp 0x1004dc80
mov ecx, dword [ebp - 0x64]
dec ecx
cmp ebx, ecx
jae 0x1004f8ca
movzx ecx, word [edx]
cmp cx, word [ebx]
jne 0x1004f8ca
add ebx, 2
add edx, 2
cmp ebx, dword [ebp - 0x64]
jae 0x1004e747
mov cl, byte [edx]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
jmp 0x1004e747
xor eax, eax
jmp 0x1004eebb
movzx esi, word [edx]
cmp si, word [ebx]
jne 0x1004eb36
add ebx, 2
add edx, 2
jmp 0x1004eb36
movzx esi, word [edx]
cmp si, word [ebx]
jne 0x1004ee86
add ebx, 2
add edx, 2
jmp 0x1004ee86
mov dl, byte [edx]
lea esi, [ebx + 1]
cmp dl, byte [ebx]
cmove ebx, esi
jmp 0x1004ee8f
mov ecx, dword [ebp - 0x3c]
dec ecx
cmp edx, ecx
jae 0x1004f93c
movzx ecx, word [esi]
cmp cx, word [edx]
jne 0x1004f93c
add edx, 2
add esi, 2
cmp edx, dword [ebp - 0x3c]
jae 0x1004dd46
mov cl, byte [esi]
lea esi, [edx + 1]
cmp cl, byte [edx]
cmove edx, esi
jmp 0x1004dd46
lea ecx, [eax - 1]
cmp ebx, ecx
jae 0x1004fa2e
movzx ecx, word [esi]
mov edi, dword [ebp - 0x10]
cmp cx, word [ebx]
jne 0x1004fa31
add ebx, 2
add esi, 2
jmp 0x1004fa31
mov ecx, dword [ebp - 0x48]
dec ecx
cmp ebx, ecx
jae 0x1004f98f
movzx ecx, word [edx]
cmp cx, word [ebx]
jne 0x1004f98f
add ebx, 2
add edx, 2
cmp ebx, dword [ebp - 0x48]
jae 0x1004f2da
mov cl, byte [edx]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
jmp 0x1004f2da
mov ecx, dword [ebp - 0x3c]
dec ecx
cmp ebx, ecx
jae 0x1004f9bd
movzx ecx, word [edx]
cmp cx, word [ebx]
jne 0x1004f9bd
add ebx, 2
add edx, 2
cmp ebx, dword [ebp - 0x3c]
jae 0x1004f75c
mov cl, byte [edx]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
jmp 0x1004f75c
lea ecx, [eax - 1]
cmp ebx, ecx
jae 0x1004f9ea
movzx ecx, word [esi]
cmp cx, word [ebx]
jne 0x1004f9ea
add ebx, 2
add esi, 2
cmp ebx, eax
jae 0x1004f30b
mov cl, byte [esi]
lea esi, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, esi
jmp 0x1004f30b
lea ecx, [eax - 1]
cmp ebx, ecx
jae 0x1004fa16
movzx ecx, word [esi]
cmp cx, word [ebx]
jne 0x1004fa16
add ebx, 2
add esi, 2
cmp ebx, eax
jae 0x1004fa24
mov cl, byte [esi]
lea esi, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, esi
mov ecx, dword [ebp - 0x14]
sub ebx, ecx
jmp 0x1004f702
mov edi, dword [ebp - 0x10]
cmp ebx, eax
jae 0x1004e77b
mov cl, byte [esi]
lea esi, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, esi
jmp 0x1004e77b
xor eax, eax
jmp 0x1004eed0
mov ebx, edi
jmp 0x1004dcbf
mov dword [ebp - 0x18], ebx
jmp 0x1004dcf1
mov ecx, dword [ebp - 0x48]
dec ecx
cmp edx, ecx
jae 0x1004fa74
movzx ecx, word [esi]
cmp cx, word [edx]
jne 0x1004fa74
add edx, 2
add esi, 2
cmp edx, dword [ebp - 0x48]
jae 0x1004f337
mov cl, byte [esi]
lea esi, [edx + 1]
cmp cl, byte [edx]
cmove edx, esi
jmp 0x1004f337
mov ecx, dword [ebp - 0x3c]
dec ecx
cmp edx, ecx
jae 0x1004faa2
movzx ecx, word [esi]
cmp cx, word [edx]
jne 0x1004faa2
add edx, 2
add esi, 2
cmp edx, dword [ebp - 0x3c]
jae 0x1004f7bc
mov cl, byte [esi]
lea esi, [edx + 1]
cmp cl, byte [edx]
cmove edx, esi
jmp 0x1004f7bc
mov ebx, eax
jmp 0x1004eae5
mov ebx, eax
jmp 0x1004ee32
mov ebx, eax
jmp 0x1004e728
mov ebx, edx
jmp 0x1004e75a
mov ebx, eax
jmp 0x1004f2bb
mov ebx, eax
jmp 0x1004f73d
mov ebx, edx
jmp 0x1004f2ed
mov dword [ebp - 0x14], ecx
mov ebx, ecx
jmp 0x1004f771
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x64]
dec ecx
cmp edx, ecx
jae 0x1004fb0e
movzx ecx, word [esi]
cmp cx, word [edx]
jne 0x1004fb0e
add edx, 2
add esi, 2
cmp edx, dword [ebp - 0x64]
jae 0x1004e7b2
mov cl, byte [esi]
lea esi, [edx + 1]
cmp cl, byte [edx]
cmove edx, esi
jmp 0x1004e7b2