Function at 0x1005c4f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x7c
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x4000]
mov edx, dword [eax + 0x4008]
mov edi, dword [eax + 0x4010]
lea esi, [edx + edi]
add ecx, ebx
cmp ecx, 0x80000001
jb 0x1005c5b1
add ebx, 0xffff0000
movd xmm0, ebx
pshufd xmm0, xmm0, 0
xor eax, eax
movdqa xmm1, xmmword [0x1006d120]
movdqa xmm2, xmm0
pxor xmm2, xmm1
mov ecx, dword [ebp + 8]
movdqu xmm3, xmmword [ecx + eax*4]
movdqa xmm4, xmm3
pxor xmm4, xmm1
pcmpgtd xmm4, xmm2
psubd xmm3, xmm0
pand xmm3, xmm4
movdqu xmmword [ecx + eax*4], xmm3
add eax, 4
cmp eax, 0x1000
jne 0x1005c543
mov eax, dword [ebp + 8]
mov dword [eax + 0x4000], 0x10000
mov edi, dword [eax + 0x4010]
cmp edi, 0x10001
jb 0x1005c59b
mov eax, dword [ebp + 8]
mov dword [eax + 0x4010], 0x10000
mov edi, 0x10000
mov edx, esi
sub edx, edi
mov eax, dword [ebp + 8]
mov dword [eax + 0x4008], edx
mov dword [ebp - 0x18], 0x10000
jmp 0x1005c5b6
mov eax, edx
mov dword [ebp - 0x18], ebx
mov eax, esi
xor ecx, ecx
inc ecx
mov esi, dword [ebp + 0x1c]
test esi, esi
cmovle esi, ecx
mov ecx, 0x10001
cmp esi, ecx
cmovge esi, ecx
mov dword [ebp - 0x70], esi
mov ebx, eax
cmp eax, dword [ebp + 0xc]
je 0x1005cd8d
lea esi, [edi - 1]
cmp esi, 2
mov ecx, dword [ebp + 0x14]
ja 0x1005c600
mov edx, dword [ebp + 8]
mov dword [edx + 0x4010], 0
mov ebx, dword [ebp + 0xc]
mov dword [edx + 0x4008], ebx
xor edi, edi
mov edx, ebx
mov eax, dword [ebp + 0xc]
lea esi, [eax + ecx]
cmp esi, edx
mov dword [ebp - 0x4c], esi
jbe 0x1005c63b
cmp esi, ebx
jae 0x1005c63b
mov esi, ebx
sub esi, dword [ebp - 0x4c]
mov eax, 0x10000
cmp esi, eax
cmovae esi, eax
xor edi, edi
cmp esi, 4
cmovae edi, esi
mov eax, dword [ebp + 8]
mov dword [eax + 0x4010], edi
mov edx, ebx
sub edx, edi
mov dword [eax + 0x4008], edx
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x54], esi
cmp ebx, dword [ebp + 0xc]
je 0x1005cd18
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x400c]
mov dword [ebp - 0x24], eax
test eax, eax
je 0x1005cd95
cmp ecx, 0x1001
jl 0x1005ceae
push 0x4014
push dword [ebp - 0x24]
push dword [ebp + 8]
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [ebp + 0x14]
add esp, 0xc
xor eax, eax
cmp esi, 0x7e000000
ja 0x1005cfec
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x4000]
mov dword [ebp - 0x40], edx
mov edi, dword [ecx + 0x4008]
mov dword [ebp - 0x24], edi
mov ebx, dword [ebp + 0xc]
mov eax, ebx
sub eax, edx
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0x4010]
lea ebx, [edi + eax]
add eax, esi
mov dword [ecx + 0x4010], eax
lea eax, [edx + esi]
mov dword [ecx + 0x4000], eax
mov dword [ecx + 0x4004], 2
mov eax, dword [ebp + 0xc]
imul eax, dword [eax], 0x9e3779b1
shr eax, 0x14
mov dword [ecx + eax*4], edx
mov edi, ebx
sub edi, edx
mov eax, dword [ebp + 0x10]
add dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x70]
mov ecx, edx
shl ecx, 6
or ecx, 1
mov eax, dword [ebp - 0x24]
test eax, eax
cmove edi, eax
mov dword [ebp - 0x44], edi
cmove ebx, eax
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp - 0x4c]
lea eax, [eax - 5]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0xc]
lea ebx, [eax + 1]
lea eax, [eax + 2]
mov edi, dword [ebp - 0x40]
lea edi, [edi + 1]
mov dword [ebp - 0x28], edi
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
lea edi, [edi + esi - 0xb]
mov dword [ebp - 0x34], edi
mov esi, dword [ebp - 0x4c]
lea esi, [esi - 8]
mov dword [ebp - 0x2c], esi
mov edi, dword [ebp + 0xc]
lea esi, [edi + 4]
mov dword [ebp - 0x80], esi
mov esi, dword [ebp + 0x14]
lea esi, [esi + edi - 5]
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x14], ebx
mov esi, dword [ebx]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edx
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
imul edx, dword [ebp - 0x20], 0x9e3779b1
shr edx, 0x14
mov eax, dword [ebp + 8]
mov esi, dword [eax + edx*4]
cmp esi, dword [ebp - 0x40]
cmovb edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
mov dword [eax + edx*4], ebx
lea edx, [esi + 0xffff]
mov dword [ebp - 0x28], ebx
cmp edx, ebx
jb 0x1005c7aa
mov eax, esi
mov edx, dword [edi + esi]
mov ebx, edi
mov edi, dword [ebp - 0x14]
cmp edx, dword [edi]
je 0x1005c7d1
mov esi, dword [ebp - 0x18]
mov ebx, esi
mov edi, dword [ebp - 0x30]
sub ebx, edi
mov eax, dword [ebp - 0x1c]
add eax, esi
lea edx, [ecx + 1]
shr ecx, 6
mov dword [ebp - 0x1c], ecx
mov ecx, edx
mov dword [ebp - 0x14], esi
cmp eax, dword [ebp - 0x34]
jbe 0x1005c767
jmp 0x1005cc5d
mov edx, ebx
cmp eax, dword [ebp - 0x40]
mov ebx, dword [ebp + 0xc]
cmovb ebx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ebx
sub dword [ebp - 0x28], eax
add edx, eax
mov dword [ebp - 0x60], edx
mov ecx, dword [ebp - 0x14]
mov eax, ecx
mov ebx, dword [ebp - 0x10]
sub eax, ebx
lea esi, [eax - 0xf]
lea edx, [ecx + 0xef]
mov dword [ebp - 0x38], edx
mov edx, ebx
shl dl, 4
mov dword [ebp - 0x14], ecx
shl cl, 4
sub cl, dl
mov edx, ebx
xor edi, edi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], esi
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x64], esi
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x6c], esi
mov byte [ebp - 0x68], cl
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x60]
lea esi, [eax + edi]
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x14]
lea ebx, [eax + edi]
cmp esi, dword [ebp - 0x18]
jbe 0x1005c876
cmp ebx, edx
jbe 0x1005c876
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ch, byte [eax + edx - 1]
lea eax, [edx - 1]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x64]
dec eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x6c]
dec eax
mov dword [ebp - 0x38], eax
mov cl, byte [ebp - 0x68]
add cl, 0xf0
mov eax, dword [ebp - 0x1c]
dec eax
mov edi, dword [ebp - 0x60]
cmp ch, byte [edi + edx - 1]
mov edi, dword [ebp - 0x74]
mov edx, dword [ebp - 0x10]
je 0x1005c815
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x38], ebx
mov edi, dword [ebp - 0x3c]
mov ecx, edi
sub ecx, edx
add ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, ecx
mov ebx, dword [ebp - 0x20]
lea eax, [ebx + edx]
add eax, 9
cmp eax, dword [ebp - 0x54]
ja 0x1005cfea
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
sub edx, eax
lea ecx, [edx + ebx]
mov dword [ebp - 0x1c], ecx
lea ecx, [edi + 1]
cmp dword [ebp - 0x1c], 0xf
jb 0x1005c95b
mov ebx, dword [ebp - 0x5c]
add ebx, dword [ebp - 0x20]
mov byte [edi], 0xf0
mov dword [ebp - 0x5c], ebx
cmp ebx, 0xff
jl 0x1005c953
mov eax, 0x1fd
mov edi, dword [ebp - 0x64]
cmp edi, eax
cmovge edi, eax
mov dword [ebp - 0x64], edi
mov eax, edx
sub eax, edi
mov edi, dword [ebp - 0x20]
add eax, edi
add eax, 0xef
mov edi, 0x80808081
mov dword [ebp - 0x14], edx
mul edi
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 - 0x64]
add ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x6c]
sub eax, ecx
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x3c]
lea ecx, [eax + edi]
add ecx, 2
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
add eax, edx
add eax, 0xfffffef2
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x5c]
mov byte [ecx], bl
inc ecx
jmp 0x1005c960
mov bl, byte [ebp - 0x68]
mov byte [edi], bl
mov ebx, dword [ebp - 0x18]
add edx, ecx
add edx, dword [ebp - 0x20]
movq xmm0, qword [eax]
movq qword [ecx], xmm0
add ecx, 8
add eax, 8
cmp ecx, edx
jb 0x1005c968
mov dword [ebp - 0x20], edi
mov ecx, edx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], ecx
mov word [ecx], ax
cmp ebx, dword [ebp - 0x24]
je 0x1005caed
lea eax, [edx + 4]
cmp dword [ebp - 0x2c], eax
jbe 0x1005ed7a
mov ecx, dword [edx + 4]
xor ecx, dword [esi + 4]
je 0x1005cb38
bsf ebx, ecx
shr ebx, 3
mov edi, dword [ebp - 0x30]
add edx, ebx
add edx, 4
mov dword [ebp - 0x10], edx
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov ecx, dword [ebp - 0x14]
lea eax, [ecx + edx]
add eax, 8
cmp eax, dword [ebp - 0x54]
ja 0x1005cfea
mov edx, ecx
lea esi, [ecx + 2]
mov ecx, dword [ebp - 0x20]
mov al, byte [ecx]
cmp ebx, 0xf
jb 0x1005ca64
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [esi], 0xffffffff
cmp eax, 0x3fc
jb 0x1005ca4b
lea eax, [ebx - 0x40b]
mov dword [ebp - 0x18], ebx
mov ecx, 0x80808081
mov ebx, edx
mul ecx
mov edi, edx
lea eax, [ebx + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea esi, [ebx + edi*4]
add esi, 6
imul eax, edi, 0xfffffc04
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
add eax, ecx
add eax, 0xfffffbf5
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add eax, ecx
add esi, ecx
inc esi
mov dword [ebp - 0x3c], esi
mov byte [esi - 1], al
jmp 0x1005ca6b
mov dword [ebp - 0x3c], esi
add al, bl
mov byte [ecx], al
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x34]
jae 0x1005cc5d
lea eax, [edx - 2]
imul ecx, dword [edx - 2], 0x9e3779b1
shr ecx, 0x14
sub eax, edi
mov esi, edi
mov edi, dword [ebp + 8]
mov dword [edi + ecx*4], eax
imul ecx, dword [edx], 0x9e3779b1
shr ecx, 0x14
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x10]
sub edx, esi
mov eax, dword [edi + ecx*4]
cmp eax, dword [ebp - 0x40]
cmovb esi, dword [ebp - 0x44]
mov ebx, dword [ebp + 0xc]
cmovb ebx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ebx
mov dword [edi + ecx*4], edx
lea ecx, [eax + 0xffff]
mov ebx, edx
cmp ecx, edx
mov edx, dword [ebp - 0x10]
jb 0x1005cc40
add esi, eax
mov ecx, dword [esi]
cmp ecx, dword [edx]
jne 0x1005cc40
mov edi, dword [ebp - 0x3c]
lea ecx, [edi + 1]
mov byte [edi], 0
sub ebx, eax
mov eax, ebx
mov dword [ebp - 0x20], edi
mov ebx, dword [ebp - 0x18]
jmp 0x1005c985
mov edi, dword [ebp - 0x48]
sub edi, esi
add edi, edx
mov ecx, dword [ebp - 0x50]
cmp edi, ecx
cmova edi, ecx
lea ebx, [edx + 4]
mov eax, edx
lea edx, [edi - 3]
cmp edx, ebx
jbe 0x1005edc4
mov ecx, dword [eax + 4]
xor ecx, dword [esi + 4]
je 0x1005cbad
bsf ecx, ecx
shr ecx, 3
mov dword [ebp - 0x18], ecx
add ecx, eax
add ecx, 4
cmp ecx, edi
je 0x1005cb7e
mov dword [ebp - 0x10], ecx
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x18]
jmp 0x1005c9bd
lea ebx, [edx + 8]
add esi, 8
mov dword [ebp - 0x10], edx
cmp ebx, dword [ebp - 0x2c]
jae 0x1005eb2b
mov edx, ebx
sub edx, dword [ebp - 0x10]
add edx, 0xfffffffc
mov ecx, dword [ebx]
xor ecx, dword [esi]
jne 0x1005cb6b
add ebx, 4
add esi, 4
add edx, 4
cmp ebx, dword [ebp - 0x2c]
jb 0x1005cb52
jmp 0x1005eb2b
bsf ebx, ecx
shr ebx, 3
add ebx, edx
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x10]
jmp 0x1005c9b5
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov edx, edi
mov eax, edi
mov edi, ebx
cmp dword [ebp - 0x2c], eax
jbe 0x1005cbfd
mov ecx, dword [eax]
xor ecx, dword [ebx]
je 0x1005cbf7
bsf edx, ecx
shr edx, 3
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x18]
add ebx, edx
add eax, edx
mov dword [ebp - 0x10], eax
jmp 0x1005c9bd
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], eax
add eax, 8
lea edi, [esi + 8]
mov dword [ebp - 0x1c], ebx
cmp eax, edx
jae 0x1005eb83
mov ebx, eax
sub ebx, dword [ebp - 0x10]
add ebx, 0xfffffffc
mov ecx, dword [eax]
xor ecx, dword [edi]
jne 0x1005cbe4
add eax, 4
add edi, 4
add ebx, 4
cmp eax, edx
jb 0x1005cbcc
jmp 0x1005eb83
bsf ecx, ecx
shr ecx, 3
add ecx, ebx
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x18]
jmp 0x1005cb1e
lea edx, [eax + 4]
mov edi, dword [ebp - 0x80]
cmp edx, dword [ebp - 0x2c]
jae 0x1005ec45
mov ebx, dword [ebp - 0x10]
add ebx, dword [ebp - 0x48]
sub ebx, esi
mov ecx, dword [ebp - 0x78]
cmp ebx, ecx
cmovae ebx, ecx
mov esi, edx
sub esi, ebx
mov ecx, dword [edx]
xor ecx, dword [edi]
jne 0x1005cc33
add edx, 4
add edi, 4
add esi, 4
cmp edx, dword [ebp - 0x2c]
jb 0x1005cc1a
jmp 0x1005ec45
bsf edx, ecx
shr edx, 3
add edx, esi
jmp 0x1005cb9b
lea ebx, [edx + 1]
mov eax, ebx
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
lea eax, [edx + 2]
cmp eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x7c]
jbe 0x1005c756
mov esi, dword [ebp - 0x4c]
sub esi, dword [ebp - 0x10]
lea eax, [esi + 0xf0]
mov ecx, 0x80808081
mul ecx
mov eax, dword [ebp - 0x3c]
add eax, esi
shr edx, 7
add eax, edx
inc eax
cmp eax, dword [ebp - 0x54]
mov ebx, dword [ebp + 0x10]
mov eax, 0
ja 0x1005cfec
mov ecx, esi
cmp esi, 0xf
jb 0x1005e00f
lea eax, [ecx - 0xf]
mov edi, dword [ebp - 0x3c]
mov byte [edi], 0xf0
mov edx, ecx
lea ecx, [edi + 1]
cmp eax, 0xff
mov dword [ebp - 0x4c], edx
jb 0x1005ccf2
lea eax, [edx - 0x10e]
mov ebx, edx
mov edx, 0x80808081
mul edx
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
mov edx, esi
sub edx, eax
lea ecx, [esi + edi]
add ecx, 2
add edi, esi
inc edi
lea eax, [ebx + edx]
add eax, 0xfffffef2
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x10]
mov byte [ecx], al
add edi, 2
mov esi, ecx
mov ecx, dword [ebp - 0x4c]
push ecx
push edx
push edi
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, edi
sub esi, ebx
inc esi
mov eax, esi
jmp 0x1005cfec
cmp edi, 0xffff
ja 0x1005cfcf
mov eax, dword [ebp - 0x18]
sub eax, edi
mov dword [ebp - 0x30], eax
jbe 0x1005cfcf
cmp ecx, 0x7e000000
ja 0x1005cfda
test ecx, ecx
je 0x1005d0f0
mov ecx, dword [ebp + 0x14]
add ecx, edi
mov eax, dword [ebp + 8]
mov edx, edi
mov edi, eax
mov dword [eax + 0x4010], ecx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x18]
add ecx, esi
mov dword [edi + 0x4000], ecx
mov ecx, dword [ebp + 0x14]
add dword [ebp - 0x54], eax
mov dword [edi + 0x4004], 2
cmp ecx, 0xd
jge 0x1005d7e2
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp + 0xc]
jmp 0x1005d04f
mov ecx, dword [ebp + 0x14]
jmp 0x1005c600
cmp edi, 0xffff
mov dword [ebp - 0x3c], edx
ja 0x1005cfde
mov eax, dword [ebp - 0x18]
sub eax, edi
mov dword [ebp - 0x44], eax
jbe 0x1005cfde
cmp ecx, 0x7e000000
ja 0x1005cfea
test ecx, ecx
je 0x1005d21a
lea eax, [edx + edi]
mov dword [ebp - 0x50], eax
mov esi, dword [ebp - 0x18]
sub eax, esi
test edx, edx
cmove eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x10]
mov edx, eax
add dword [ebp - 0x54], eax
add edi, ecx
mov eax, dword [ebp + 8]
mov ebx, edi
mov edi, eax
mov dword [eax + 0x4010], ebx
lea eax, [esi + ecx]
mov dword [edi + 0x4000], eax
mov dword [edi + 0x4004], 2
mov dword [ebp - 0x48], edx
mov eax, dword [ebp + 0xc]
mov esi, eax
cmp ecx, 0xd
mov edi, dword [ebp - 0x70]
jge 0x1005e024
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x24], esi
sub edi, esi
lea eax, [edi + 0xf0]
mov ecx, 0x80808081
mul ecx
mov esi, dword [ebp - 0x48]
lea eax, [esi + edi]
shr edx, 7
add eax, edx
inc eax
cmp eax, dword [ebp - 0x54]
mov eax, 0
ja 0x1005cfec
mov ecx, edi
cmp edi, 0xf
jb 0x1005eb5f
lea eax, [ecx - 0xf]
mov byte [esi], 0xf0
mov edi, ecx
lea ecx, [esi + 1]
cmp eax, 0xff
mov dword [ebp - 0x4c], edi
jb 0x1005cea6
lea eax, [edi - 0x10e]
mov edx, 0x80808081
mul edx
mov ebx, esi
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
mov edx, esi
sub edx, eax
lea ecx, [esi + ebx]
add ecx, 2
add esi, ebx
inc esi
lea eax, [edi + edx]
add eax, 0xfffffef2
mov edx, dword [ebp - 0x24]
jmp 0x1005d1f7
xor eax, eax
cmp ecx, 0x7e000000
ja 0x1005cfec
test ecx, ecx
je 0x1005d22a
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x4000]
mov esi, dword [ebp + 0x10]
mov ebx, esi
mov esi, dword [edx + 0x4008]
mov edx, dword [edx + 0x4010]
add edx, esi
mov dword [ebp - 0x60], edx
sub edx, eax
test esi, esi
mov dword [ebp - 0x3c], esi
cmove edx, esi
mov dword [ebp - 0x48], edx
add dword [ebp - 0x54], ebx
mov edi, dword [ebp + 8]
mov dword [edi + 0x400c], 0
mov dword [edi + 0x4010], ecx
mov edx, ecx
mov esi, dword [ebp - 0x18]
add ecx, esi
mov dword [edi + 0x4000], ecx
mov dword [edi + 0x4004], 2
mov dword [ebp - 0x38], ebx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x28], ecx
cmp edx, 0xd
mov edi, dword [ebp - 0x70]
jge 0x1005d242
mov edi, dword [ebp - 0x4c]
sub edi, dword [ebp - 0x28]
lea eax, [edi + 0xf0]
mov ecx, 0x80808081
mul ecx
mov eax, dword [ebp - 0x38]
add eax, edi
shr edx, 7
add eax, edx
inc eax
cmp eax, dword [ebp - 0x54]
mov eax, 0
mov ebx, dword [ebp + 0x10]
ja 0x1005cfec
mov ecx, edi
cmp edi, 0xf
jb 0x1005eb16
lea eax, [ecx - 0xf]
mov edi, dword [ebp - 0x38]
mov byte [edi], 0xf0
mov edx, ecx
lea ecx, [edi + 1]
cmp eax, 0xff
mov dword [ebp - 0x4c], edx
jb 0x1005cfc7
lea eax, [edx - 0x10e]
mov ebx, edx
mov edx, 0x80808081
mul edx
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
mov edx, esi
sub edx, eax
lea ecx, [esi + edi]
add ecx, 2
add edi, esi
inc edi
lea eax, [ebx + edx]
add eax, 0xfffffef2
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x28]
jmp 0x1005ccf5
cmp ecx, 0x7e000000
mov ebx, dword [ebp + 0xc]
jbe 0x1005d009
xor eax, eax
jmp 0x1005d001
cmp ecx, 0x7e000000
jbe 0x1005d10d
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [edx + 0x4008], ecx
mov ecx, dword [ebp + 0x14]
mov dword [edx + 0x4010], ecx
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
test ecx, ecx
je 0x1005d0f0
mov ecx, dword [ebp + 0x14]
add ecx, edi
mov esi, dword [ebp + 8]
mov dword [esi + 0x4010], ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x18]
add ecx, edx
mov dword [esi + 0x4000], ecx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
add dword [ebp - 0x54], eax
mov dword [esi + 0x4004], 2
cmp ecx, 0xd
jge 0x1005dbea
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x34], eax
mov esi, dword [ebp - 0x4c]
sub esi, ebx
lea eax, [esi + 0xf0]
mov ecx, 0x80808081
mul ecx
mov eax, dword [ebp - 0x34]
add eax, esi
shr edx, 7
add eax, edx
inc eax
cmp eax, dword [ebp - 0x54]
mov eax, 0
ja 0x1005d001
mov ecx, esi
cmp esi, 0xf
jb 0x1005dfe8
lea eax, [ecx - 0xf]
mov edx, dword [ebp - 0x34]
mov byte [edx], 0xf0
mov edi, ecx
lea ecx, [edx + 1]
cmp eax, 0xff
mov dword [ebp - 0x4c], edi
jb 0x1005d0df
lea eax, [edi - 0x10e]
mov dword [ebp - 0x34], edx
mov edx, 0x80808081
mul edx
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
mov edx, esi
sub edx, eax
mov eax, dword [ebp - 0x34]
lea ecx, [esi + eax]
add ecx, 2
add esi, eax
inc esi
lea eax, [edi + edx]
add eax, 0xfffffef2
mov edx, esi
mov byte [ecx], al
add edx, 2
mov eax, edx
mov esi, ecx
mov ecx, dword [ebp - 0x4c]
jmp 0x1005dff5
cmp dword [ebp + 0x18], 0
mov eax, 0
jle 0x1005d001
mov eax, dword [ebp + 0x10]
mov byte [eax], 0
xor eax, eax
inc eax
jmp 0x1005d001
test ecx, ecx
je 0x1005d21a
lea eax, [edx + edi]
mov dword [ebp - 0x48], eax
mov esi, dword [ebp - 0x18]
sub eax, esi
test edx, edx
cmove eax, edx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x10]
mov edx, eax
add dword [ebp - 0x54], eax
add edi, ecx
mov eax, dword [ebp + 8]
mov ebx, edi
mov edi, eax
mov dword [eax + 0x4010], ebx
lea eax, [esi + ecx]
mov dword [edi + 0x4000], eax
mov dword [edi + 0x4004], 2
mov dword [ebp - 0x24], edx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x10], ebx
cmp ecx, 0xd
mov edx, dword [ebp - 0x70]
jge 0x1005e5a1
mov edi, dword [ebp - 0x4c]
sub edi, dword [ebp - 0x10]
lea eax, [edi + 0xf0]
mov ecx, 0x80808081
mul ecx
mov esi, dword [ebp - 0x24]
lea eax, [esi + edi]
shr edx, 7
add eax, edx
inc eax
cmp eax, dword [ebp - 0x54]
mov eax, 0
ja 0x1005cfec
mov ecx, edi
cmp edi, 0xf
jb 0x1005eb71
lea eax, [ecx - 0xf]
mov byte [esi], 0xf0
mov edi, ecx
lea ecx, [esi + 1]
cmp eax, 0xff
mov dword [ebp - 0x4c], edi
jb 0x1005d1f4
lea eax, [edi - 0x10e]
mov edx, 0x80808081
mul edx
mov ebx, esi
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
mov edx, esi
sub edx, eax
lea ecx, [esi + ebx]
add ecx, 2
add esi, ebx
inc esi
lea eax, [edi + edx]
add eax, 0xfffffef2
mov edx, dword [ebp - 0x10]
mov byte [ecx], al
add esi, 2
mov eax, esi
mov esi, ecx
mov ecx, dword [ebp - 0x4c]
push ecx
push edx
push eax
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, edi
sub esi, dword [ebp + 0x10]
jmp 0x1005cd10
cmp dword [ebp + 0x18], 0
mov eax, 0
jg 0x1005d234
jmp 0x1005cfec
cmp dword [ebp + 0x18], 0
jle 0x1005cfec
mov eax, dword [ebp + 0x10]
mov byte [eax], 0
xor eax, eax
inc eax
jmp 0x1005cfec
mov ecx, dword [ebp + 0xc]
mov edx, ecx
sub edx, esi
mov dword [ebp - 0x30], edx
sub esi, eax
mov dword [ebp - 0x50], esi
mov eax, dword [ebp - 0x4c]
lea ebx, [eax - 5]
mov eax, dword [ebp + 0x14]
add eax, ecx
add eax, 0xfffffff5
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x3c]
test eax, eax
mov edx, dword [ebp - 0x60]
cmove edx, eax
mov dword [ebp - 0x60], edx
imul eax, dword [ecx], 0x9e3779b1
shr eax, 0x14
mov edx, dword [ebp + 8]
mov esi, dword [ebp - 0x18]
mov dword [edx + eax*4], esi
mov esi, edi
shl esi, 6
or esi, 1
mov eax, ecx
inc ecx
lea edx, [eax + 2]
mov eax, dword [ebp - 0x18]
lea eax, [eax + 1]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x58], ebx
lea eax, [ebx - 3]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + 4]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
lea eax, [eax + ebx - 5]
mov dword [ebp - 0x84], eax
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x1c], eax
mov ecx, edi
mov eax, esi
mov dword [ebp - 0x14], ecx
mov edi, edx
imul esi, dword [ebp - 0x1c], 0x9e3779b1
shr esi, 0x14
mov edx, dword [ebp + 8]
mov edx, dword [edx + esi*4]
cmp edx, ebx
jae 0x1005d30f
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + esi*4]
mov ebx, dword [ebp - 0x48]
lea ecx, [ebx + edx]
mov dword [ebp - 0x44], ecx
add edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x34], ecx
jmp 0x1005d31e
mov ebx, dword [ebp - 0x30]
lea ecx, [ebx + edx]
mov dword [ebp - 0x44], ecx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x34], ebx
mov ecx, dword [edi]
mov dword [ebp - 0x1c], ecx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov dword [ebx + esi*4], ecx
lea esi, [edx + 0xffff]
cmp esi, ecx
jb 0x1005d342
mov ecx, dword [ebp - 0x44]
mov esi, dword [ecx]
mov ebx, dword [ebp - 0x2c]
cmp esi, dword [ebx]
je 0x1005d36d
mov edx, edi
sub edx, dword [ebp - 0x30]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x14]
add edx, edi
lea esi, [eax + 1]
shr eax, 6
mov ecx, eax
mov eax, esi
mov dword [ebp - 0x2c], edi
cmp edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x18]
jbe 0x1005d2dc
jmp 0x1005cf32
sub dword [ebp - 0x20], edx
mov ebx, dword [ebp - 0x2c]
mov ecx, ebx
mov eax, dword [ebp - 0x28]
sub ecx, eax
lea esi, [ecx - 0xf]
lea edx, [ebx + 0xef]
mov dword [ebp - 0x14], edx
shl al, 4
mov edx, ebx
shl dl, 4
sub dl, al
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x74], esi
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x6c], esi
mov byte [ebp - 0x68], dl
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x44]
lea edi, [ecx + eax]
mov dword [ebp - 0x1c], eax
add eax, ebx
cmp edi, dword [ebp - 0x34]
mov dword [ebp - 0x7c], eax
jbe 0x1005d3fe
cmp eax, dword [ebp - 0x28]
jbe 0x1005d3fe
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov dh, byte [eax + ebx - 1]
lea eax, [ebx - 1]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x74]
lea esi, [ecx - 1]
mov ecx, dword [ebp - 0x6c]
lea eax, [ecx - 1]
mov dword [ebp - 0x14], eax
mov dl, byte [ebp - 0x68]
add dl, 0xf0
mov eax, dword [ebp - 0x5c]
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x44]
cmp dh, byte [eax + ebx - 1]
mov ebx, dword [ebp - 0x2c]
je 0x1005d39a
mov ecx, dword [ebp - 0x38]
sub ecx, dword [ebp - 0x28]
add ecx, ebx
mov eax, dword [ebp - 0x5c]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, ecx
mov esi, dword [ebp - 0x1c]
lea eax, [esi + edx]
add eax, 9
cmp eax, dword [ebp - 0x54]
ja 0x1005cfea
mov edx, dword [ebp - 0x28]
sub ebx, edx
lea eax, [ebx + esi]
mov ecx, dword [ebp - 0x38]
inc ecx
cmp eax, 0xf
mov eax, edx
mov edx, ebx
jb 0x1005d4cb
add dword [ebp - 0x78], esi
mov ebx, dword [ebp - 0x38]
mov byte [ebx], 0xf0
mov ebx, dword [ebp - 0x78]
cmp ebx, 0xff
jl 0x1005d4c6
mov eax, 0x1fd
mov ebx, esi
mov esi, dword [ebp - 0x74]
cmp esi, eax
cmovge esi, eax
mov eax, edx
sub eax, esi
add eax, ebx
add eax, 0xef
mov ebx, edx
mov edx, 0x80808081
mul edx
shr edx, 7
mov dword [ebp - 0x14], edx
lea eax, [edx + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x6c]
sub eax, esi
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
add ecx, eax
add ecx, 2
add edx, ebx
mov eax, dword [ebp - 0x1c]
add eax, edx
add eax, 0xfffffef2
mov edx, ebx
mov ebx, eax
mov eax, dword [ebp - 0x28]
mov byte [ecx], bl
inc ecx
jmp 0x1005d4d3
mov esi, dword [ebp - 0x38]
mov bl, byte [ebp - 0x68]
mov byte [esi], bl
add edx, ecx
add edx, dword [ebp - 0x1c]
movq xmm0, qword [eax]
movq qword [ecx], xmm0
add ecx, 8
add eax, 8
cmp ecx, edx
jb 0x1005d4d8
mov ebx, dword [ebp - 0x38]
mov ecx, edx
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov word [ecx], ax
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], ebx
je 0x1005d66b
lea eax, [edx + 4]
cmp dword [ebp - 0x40], eax
jbe 0x1005ee4a
mov ecx, dword [edx + 4]
xor ecx, dword [edi + 4]
je 0x1005d6b3
bsf ebx, ecx
shr ebx, 3
add edx, ebx
add edx, 4
mov dword [ebp - 0x28], edx
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov ecx, dword [ebp - 0x2c]
lea eax, [ecx + edx]
add eax, 8
cmp eax, dword [ebp - 0x54]
ja 0x1005cfea
mov edx, ecx
add ecx, 2
mov esi, dword [ebp - 0x20]
mov al, byte [esi]
cmp ebx, 0xf
jb 0x1005d5cf
add al, 0xf
mov byte [esi], al
lea eax, [ebx - 0xf]
mov dword [ecx], 0xffffffff
cmp eax, 0x3fc
jb 0x1005d5b5
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mov esi, edx
mul ecx
mov edi, edx
lea eax, [esi + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [esi + edi*4]
add ecx, 6
imul eax, edi, 0xfffffc04
add eax, ebx
add eax, 0xfffffbf5
mov edx, ecx
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add eax, ecx
add edx, ecx
inc edx
mov ecx, edx
mov byte [edx - 1], al
jmp 0x1005d5d3
add al, bl
mov byte [esi], al
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x38], ecx
cmp edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x18]
jae 0x1005cf32
lea eax, [edx - 2]
imul ecx, dword [edx - 2], 0x9e3779b1
shr ecx, 0x14
mov esi, dword [ebp - 0x30]
sub eax, esi
mov edi, dword [ebp + 8]
mov dword [edi + ecx*4], eax
imul ecx, dword [edx], 0x9e3779b1
shr ecx, 0x14
sub edx, esi
mov dword [ebp - 0x20], edx
mov eax, dword [edi + ecx*4]
cmp eax, ebx
jae 0x1005d626
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + ecx*4]
mov edx, dword [ebp - 0x48]
lea edi, [edx + eax]
add eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x3c]
jmp 0x1005d62f
mov edx, dword [ebp - 0x30]
lea edi, [edx + eax]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x34], edx
mov edx, dword [ebp + 8]
mov esi, dword [ebp - 0x20]
mov dword [edx + ecx*4], esi
lea ecx, [eax + 0xffff]
cmp ecx, esi
mov edx, dword [ebp - 0x28]
jb 0x1005d7c0
mov ecx, dword [edi]
cmp ecx, dword [edx]
jne 0x1005d7c0
mov ebx, dword [ebp - 0x38]
lea ecx, [ebx + 1]
mov byte [ebx], 0
mov esi, dword [ebp - 0x20]
sub esi, eax
mov eax, esi
jmp 0x1005d4f5
mov esi, dword [ebp - 0x60]
sub esi, edi
add esi, edx
mov eax, dword [ebp - 0x58]
cmp esi, eax
cmova esi, eax
lea eax, [edx + 4]
mov ecx, edx
lea edx, [esi - 3]
cmp edx, eax
mov dword [ebp - 0x14], eax
jbe 0x1005ee6f
mov eax, dword [ecx + 4]
xor eax, dword [edi + 4]
je 0x1005d722
bsf ebx, eax
shr ebx, 3
mov edx, ecx
lea eax, [ebx + edx]
add eax, 4
cmp eax, esi
je 0x1005d6f5
mov dword [ebp - 0x28], eax
jmp 0x1005d530
lea ebx, [edx + 8]
add edi, 8
cmp ebx, dword [ebp - 0x40]
mov dword [ebp - 0x28], edx
jae 0x1005eba8
mov ecx, ebx
sub ecx, edx
add ecx, 0xfffffffc
mov edx, dword [ebx]
xor edx, dword [edi]
jne 0x1005d6e5
add ebx, 4
add edi, 4
add ecx, 4
cmp ebx, dword [ebp - 0x40]
jb 0x1005d6cc
jmp 0x1005eba8
bsf ebx, edx
shr ebx, 3
add ebx, ecx
mov edx, dword [ebp - 0x28]
jmp 0x1005d528
mov dword [ebp - 0x28], edx
mov edx, esi
mov eax, esi
mov esi, dword [ebp + 0xc]
mov ecx, esi
cmp dword [ebp - 0x40], eax
jbe 0x1005d774
mov ecx, eax
mov eax, dword [eax]
xor eax, dword [esi]
je 0x1005d769
bsf edx, eax
shr edx, 3
mov esi, ecx
add ebx, edx
add esi, edx
mov dword [ebp - 0x28], esi
jmp 0x1005d530
mov dword [ebp - 0x28], ecx
lea ebx, [ecx + 8]
lea ecx, [edi + 8]
mov dword [ebp - 0x1c], esi
cmp ebx, edx
jae 0x1005ec77
mov esi, ebx
sub esi, dword [ebp - 0x28]
add esi, 0xfffffffc
mov eax, dword [ebx]
xor eax, dword [ecx]
jne 0x1005d756
add ebx, 4
add ecx, 4
add esi, 4
cmp ebx, edx
jb 0x1005d73e
jmp 0x1005ec77
bsf ebx, eax
shr ebx, 3
add ebx, esi
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x1c]
jmp 0x1005d6a1
mov eax, ecx
lea edx, [ecx + 4]
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x1c], eax
cmp edx, dword [ebp - 0x40]
jae 0x1005ed84
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x60]
sub eax, edi
mov esi, dword [ebp - 0x84]
cmp eax, esi
cmovae eax, esi
mov esi, edx
sub esi, eax
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1005d7b0
add edx, 4
add ecx, 4
add esi, 4
cmp edx, dword [ebp - 0x40]
jb 0x1005d797
jmp 0x1005ed84
bsf edx, eax
shr edx, 3
add edx, esi
mov esi, dword [ebp - 0x1c]
jmp 0x1005d716
lea ecx, [edx + 1]
mov eax, ecx
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
add edx, 2
cmp edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x80]
jbe 0x1005d2d0
jmp 0x1005cf32
mov edi, ecx
mov ecx, esi
neg ecx
mov ebx, dword [ebp + 0xc]
mov eax, ebx
sub eax, esi
mov dword [ebp - 0x2c], eax
lea eax, [edi + ebx]
add eax, 0xfffffff5
mov dword [ebp - 0x40], eax
mov eax, ebx
sub eax, edx
mov dword [ebp - 0x58], eax
imul eax, dword [ebx], 0x9e3779b1
shr eax, 0x14
mov edx, dword [ebp + 8]
mov dword [edx + eax*4], esi
mov edx, dword [ebp - 0x70]
mov edi, edx
shl edi, 6
or edi, 1
inc esi
mov dword [ebp - 0x18], esi
add ecx, ebx
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffffb
lea esi, [ebx + 1]
lea ecx, [ebx + 2]
mov dword [ebp - 0x68], eax
add eax, 0xfffffffd
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x44], ebx
mov eax, dword [esi]
mov dword [ebp - 0x1c], eax
mov ebx, edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], esi
mov esi, ecx
imul ecx, dword [ebp - 0x1c], 0x9e3779b1
shr ecx, 0x14
mov edx, dword [ebp + 8]
mov edx, dword [edx + ecx*4]
mov dword [ebp - 0x18], esi
mov esi, dword [esi]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp + 8]
mov dword [esi + ecx*4], eax
cmp edx, dword [ebp - 0x30]
jb 0x1005d88f
lea ecx, [edx + 0xffff]
cmp ecx, eax
jb 0x1005d88f
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + edx]
mov eax, dword [ebp - 0x14]
cmp ecx, dword [eax]
je 0x1005d8af
mov esi, dword [ebp - 0x18]
mov eax, esi
sub eax, dword [ebp - 0x2c]
mov ecx, ebx
add ecx, esi
lea edx, [edi + 1]
shr edi, 6
mov ebx, edi
mov edi, edx
cmp ecx, dword [ebp - 0x40]
jbe 0x1005d850
jmp 0x1005eba0
add edx, dword [ebp - 0x5c]
mov dword [ebp - 0x3c], edx
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
mov eax, dword [ebp - 0x44]
sub ecx, eax
lea edi, [ecx - 0xf]
lea edx, [ebx + 0xef]
mov dword [ebp - 0x10], edx
shl al, 4
shl bl, 4
sub bl, al
xor eax, eax
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x24], edi
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x38], esi
mov byte [ebp - 0x48], bl
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x3c]
lea esi, [ecx + eax]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x14]
add eax, ecx
mov dword [ebp - 0x1c], eax
cmp esi, dword [ebp - 0x58]
jbe 0x1005d938
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x44]
jbe 0x1005d938
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov bh, byte [ecx + eax - 1]
lea ecx, [eax - 1]
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x24]
lea edi, [ecx - 1]
mov ecx, dword [ebp - 0x38]
dec ecx
mov dword [ebp - 0x10], ecx
mov bl, byte [ebp - 0x48]
add bl, 0xf0
mov ecx, dword [ebp - 0x28]
dec ecx
mov edx, dword [ebp - 0x3c]
cmp bh, byte [edx + eax - 1]
mov eax, dword [ebp - 0x60]
je 0x1005d8d8
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x44]
sub ecx, edi
add ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, ecx
mov ebx, dword [ebp - 0x18]
lea eax, [ebx + edx]
add eax, 9
cmp eax, dword [ebp - 0x54]
ja 0x1005cfda
mov edx, dword [ebp - 0x14]
sub edx, edi
lea eax, [edx + ebx]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
lea ecx, [eax + 1]
cmp dword [ebp - 0x14], 0xf
jb 0x1005da15
mov eax, ebx
mov ebx, dword [ebp - 0x50]
add ebx, eax
mov eax, dword [ebp - 0x34]
mov byte [eax], 0xf0
mov dword [ebp - 0x50], ebx
cmp ebx, 0xff
jl 0x1005da1c
mov eax, 0x1fd
mov ebx, dword [ebp - 0x24]
cmp ebx, eax
cmovge ebx, eax
mov dword [ebp - 0x24], ebx
mov eax, edx
sub eax, ebx
mov ebx, dword [ebp - 0x18]
add eax, ebx
add eax, 0xef
mov ebx, 0x80808081
mov dword [ebp - 0x14], edx
mul ebx
mov ebx, edx
shr ebx, 7
lea eax, [ebx + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x24]
add ecx, edi
mov eax, dword [ebp - 0x38]
sub eax, ecx
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x34]
lea ecx, [eax + ebx]
add ecx, 2
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
lea ebx, [eax + edx]
add ebx, 0xfffffef2
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
jmp 0x1005da1f
mov bl, byte [ebp - 0x48]
mov byte [eax], bl
jmp 0x1005da22
mov ebx, dword [ebp - 0x50]
mov byte [ecx], bl
inc ecx
add edx, ecx
add edx, dword [ebp - 0x18]
movq xmm0, qword [edi]
movq qword [ecx], xmm0
add ecx, 8
add edi, 8
cmp ecx, edx
jb 0x1005da27
mov ecx, eax
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp + 8]
mov eax, ebx
sub eax, esi
mov dword [ebp - 0x14], edx
mov word [edx], ax
lea eax, [ebx + 4]
cmp dword [ebp - 0x20], eax
mov dword [ebp - 0x44], ebx
jbe 0x1005ee1d
mov edx, dword [ebx + 4]
xor edx, dword [esi + 4]
je 0x1005db70
bsf ebx, edx
shr ebx, 3
lea eax, [ebx + 0xf0]
mov edx, 0x80808081
mul edx
shr edx, 7
mov esi, dword [ebp - 0x14]
lea eax, [esi + edx]
add eax, 8
cmp eax, dword [ebp - 0x54]
ja 0x1005cfda
mov edx, esi
lea edx, [esi + 2]
mov al, byte [ecx]
cmp ebx, 0xf
jb 0x1005db08
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [edx], 0xffffffff
cmp eax, 0x3fc
jb 0x1005daf2
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mul ecx
mov edi, edx
mov esi, dword [ebp - 0x14]
lea eax, [esi + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea edx, [esi + edi*4]
add edx, 6
imul eax, edi, 0xfffffc04
mov edi, dword [ebp + 8]
add eax, ebx
add eax, 0xfffffbf5
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add eax, ecx
add edx, ecx
inc edx
mov byte [edx - 1], al
jmp 0x1005db0c
add al, bl
mov byte [ecx], al
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x44]
add eax, ebx
add eax, 4
mov ebx, eax
cmp eax, dword [ebp - 0x40]
jae 0x1005d04f
lea eax, [ebx - 2]
imul ecx, dword [ebx - 2], 0x9e3779b1
shr ecx, 0x14
mov edx, dword [ebp - 0x2c]
sub eax, edx
mov dword [edi + ecx*4], eax
imul ecx, dword [ebx], 0x9e3779b1
shr ecx, 0x14
mov eax, ebx
sub eax, edx
mov esi, dword [edi + ecx*4]
mov dword [edi + ecx*4], eax
cmp esi, dword [ebp - 0x30]
jb 0x1005dba9
lea ecx, [esi + 0xffff]
cmp ecx, eax
jb 0x1005dba9
add esi, dword [ebp - 0x2c]
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x1005dba9
mov ecx, dword [ebp - 0x34]
lea edx, [ecx + 1]
mov byte [ecx], 0
jmp 0x1005da41
add ebx, 8
add esi, 8
cmp ebx, dword [ebp - 0x20]
jae 0x1005dbcb
mov edx, ebx
sub edx, dword [ebp - 0x44]
add edx, 0xfffffffc
mov edi, dword [ebx]
xor edi, dword [esi]
jne 0x1005db99
add ebx, 4
add esi, 4
add edx, 4
cmp ebx, dword [ebp - 0x20]
jb 0x1005db83
jmp 0x1005dbcb
bsf ebx, edi
shr ebx, 3
add ebx, edx
mov edi, dword [ebp + 8]
jmp 0x1005da6c
lea esi, [ebx + 1]
mov eax, esi
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
lea ecx, [ebx + 2]
cmp ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x64]
jbe 0x1005d843
jmp 0x1005d04f
mov edx, dword [ebp - 0x68]
dec edx
cmp ebx, edx
jb 0x1005ebf9
cmp ebx, dword [ebp - 0x68]
mov edi, dword [ebp + 8]
jb 0x1005ec10
sub ebx, eax
jmp 0x1005da6c
mov eax, edx
neg eax
mov dword [ebp - 0x38], eax
mov eax, ebx
sub eax, edx
mov dword [ebp - 0x30], eax
lea eax, [ecx + ebx]
add eax, 0xfffffff5
mov dword [ebp - 0x40], eax
mov eax, ebx
sub eax, edi
mov dword [ebp - 0x58], eax
imul eax, dword [ebx], 0x9e3779b1
shr eax, 0x14
mov ecx, dword [ebp + 8]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp - 0x70]
mov esi, ecx
shl esi, 6
or esi, 1
inc edx
mov dword [ebp - 0x18], edx
add dword [ebp - 0x38], ebx
mov eax, dword [ebp - 0x4c]
lea edx, [eax - 5]
lea edi, [ebx + 1]
lea eax, [ebx + 2]
mov dword [ebp - 0x64], edx
add edx, 0xfffffffd
mov dword [ebp - 0x20], edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x14], edi
mov edx, dword [edi]
mov dword [ebp - 0x1c], edx
mov edi, ecx
mov edx, esi
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x18], edi
mov esi, eax
imul eax, dword [ebp - 0x1c], 0x9e3779b1
shr eax, 0x14
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + eax*4]
mov edi, dword [esi]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp + 8]
mov dword [edi + eax*4], ebx
mov eax, ecx
mov dword [ebp - 0x2c], ecx
lea eax, [ecx + 0xffff]
cmp eax, ebx
mov ecx, dword [ebp - 0x30]
jb 0x1005dc98
mov eax, dword [ebp - 0x2c]
mov eax, dword [ecx + eax]
mov ebx, dword [ebp - 0x14]
cmp eax, dword [ebx]
je 0x1005dcb8
mov ebx, esi
sub ebx, ecx
mov eax, dword [ebp - 0x18]
add eax, esi
lea ecx, [edx + 1]
shr edx, 6
mov edi, edx
mov edx, ecx
mov dword [ebp - 0x14], esi
cmp eax, dword [ebp - 0x40]
jbe 0x1005dc59
jmp 0x1005eba0
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov eax, dword [ebp - 0x44]
sub edx, eax
lea edi, [edx - 0xf]
lea esi, [ecx + 0xef]
mov dword [ebp - 0x1c], esi
shl al, 4
mov ebx, ecx
shl bl, 4
sub bl, al
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x60], edi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3c], edi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x48], esi
mov byte [ebp - 0x24], bl
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x2c]
lea esi, [edx + eax]
mov dword [ebp - 0x18], eax
add eax, ecx
cmp esi, dword [ebp - 0x58]
mov dword [ebp - 0x50], eax
jbe 0x1005dd4f
cmp eax, dword [ebp - 0x44]
jbe 0x1005dd4f
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov bh, byte [eax + ecx - 1]
lea eax, [ecx - 1]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x3c]
lea edi, [edx - 1]
mov edx, dword [ebp - 0x48]
lea eax, [edx - 1]
mov dword [ebp - 0x1c], eax
mov bl, byte [ebp - 0x24]
add bl, 0xf0
mov eax, dword [ebp - 0x10]
lea edx, [eax - 1]
mov eax, dword [ebp - 0x2c]
cmp bh, byte [eax + ecx - 1]
mov ecx, dword [ebp - 0x14]
je 0x1005dceb
mov ebx, ecx
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x44]
sub ecx, edi
add ecx, ebx
mov eax, dword [ebp - 0x10]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, ecx
mov ecx, dword [ebp - 0x18]
lea eax, [ecx + edx]
add eax, 9
cmp eax, dword [ebp - 0x54]
ja 0x1005cfda
sub ebx, edi
lea eax, [ebx + ecx]
mov edx, dword [ebp - 0x34]
lea ecx, [edx + 1]
cmp eax, 0xf
mov eax, edx
mov edx, ebx
jb 0x1005de22
mov ebx, dword [ebp - 0x60]
add ebx, dword [ebp - 0x18]
mov byte [eax], 0xf0
cmp ebx, 0xff
jl 0x1005de1d
mov eax, 0x1fd
mov ebx, dword [ebp - 0x3c]
cmp ebx, eax
cmovge ebx, eax
mov dword [ebp - 0x3c], ebx
mov eax, edx
sub eax, ebx
mov ebx, dword [ebp - 0x18]
add eax, ebx
add eax, 0xef
mov ebx, 0x80808081
mov dword [ebp - 0x14], edx
mul ebx
mov ebx, edx
shr ebx, 7
lea eax, [ebx + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x3c]
add ecx, edi
mov eax, dword [ebp - 0x48]
sub eax, ecx
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x34]
lea ecx, [eax + ebx]
add ecx, 2
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
lea ebx, [eax + edx]
add ebx, 0xfffffef2
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov byte [ecx], bl
inc ecx
jmp 0x1005de27
mov bl, byte [ebp - 0x24]
mov byte [eax], bl
add edx, ecx
add edx, dword [ebp - 0x18]
movq xmm0, qword [edi]
movq qword [ecx], xmm0
add ecx, 8
add edi, 8
cmp ecx, edx
jb 0x1005de2c
mov ecx, eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp + 8]
mov eax, ebx
sub eax, esi
mov dword [ebp - 0x14], edx
mov word [edx], ax
lea eax, [ebx + 4]
cmp dword [ebp - 0x20], eax
mov dword [ebp - 0x44], ebx
jbe 0x1005ee27
mov edx, dword [ebx + 4]
xor edx, dword [esi + 4]
je 0x1005df6f
bsf ebx, edx
shr ebx, 3
lea eax, [ebx + 0xf0]
mov edx, 0x80808081
mul edx
shr edx, 7
mov esi, dword [ebp - 0x14]
lea eax, [esi + edx]
add eax, 8
cmp eax, dword [ebp - 0x54]
ja 0x1005cfda
mov edx, esi
lea edx, [esi + 2]
mov al, byte [ecx]
cmp ebx, 0xf
jb 0x1005df0d
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [edx], 0xffffffff
cmp eax, 0x3fc
jb 0x1005def7
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mul ecx
mov edi, edx
mov esi, dword [ebp - 0x14]
lea eax, [esi + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea edx, [esi + edi*4]
add edx, 6
imul eax, edi, 0xfffffc04
mov edi, dword [ebp + 8]
add eax, ebx
add eax, 0xfffffbf5
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add eax, ecx
add edx, ecx
inc edx
mov byte [edx - 1], al
jmp 0x1005df11
add al, bl
mov byte [ecx], al
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x44]
add eax, ebx
add eax, 4
mov ebx, eax
cmp eax, dword [ebp - 0x40]
jae 0x1005d04f
imul eax, dword [ebx - 2], 0x9e3779b1
lea ecx, [ebx - 2]
shr eax, 0x14
mov edx, dword [ebp - 0x30]
sub ecx, edx
mov dword [edi + eax*4], ecx
imul eax, dword [ebx], 0x9e3779b1
shr eax, 0x14
mov ecx, ebx
sub ecx, edx
mov esi, dword [edi + eax*4]
mov dword [edi + eax*4], ecx
lea eax, [esi + 0xffff]
cmp eax, ecx
jb 0x1005dfa8
add esi, edx
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x1005dfa8
mov ecx, dword [ebp - 0x34]
lea edx, [ecx + 1]
mov byte [ecx], 0
jmp 0x1005de46
add ebx, 8
add esi, 8
cmp ebx, dword [ebp - 0x20]
jae 0x1005dfc9
mov edx, ebx
sub edx, dword [ebp - 0x44]
add edx, 0xfffffffc
mov edi, dword [ebx]
xor edi, dword [esi]
jne 0x1005df98
add ebx, 4
add esi, 4
add edx, 4
cmp ebx, dword [ebp - 0x20]
jb 0x1005df82
jmp 0x1005dfc9
bsf ebx, edi
shr ebx, 3
add ebx, edx
mov edi, dword [ebp + 8]
jmp 0x1005de71
lea edi, [ebx + 1]
mov eax, edi
sub eax, edx
mov dword [ebp - 0x18], eax
lea eax, [ebx + 2]
cmp eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x5c]
jbe 0x1005dc47
jmp 0x1005d04f
mov edx, dword [ebp - 0x64]
dec edx
cmp ebx, edx
jb 0x1005ec1f
cmp ebx, dword [ebp - 0x64]
mov edi, dword [ebp + 8]
jb 0x1005ec36
sub ebx, eax
jmp 0x1005de71
mov eax, ecx
shl al, 4
mov esi, dword [ebp - 0x34]
mov byte [esi], al
lea eax, [esi + 1]
push ecx
push ebx
push eax
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, edi
sub esi, dword [ebp + 0x10]
inc esi
mov eax, esi
jmp 0x1005d001
mov eax, ecx
shl al, 4
mov esi, dword [ebp - 0x3c]
mov byte [esi], al
lea edi, [esi + 1]
mov edx, dword [ebp - 0x10]
jmp 0x1005ccff
mov edx, dword [ebp + 0xc]
mov eax, edx
mov esi, dword [ebp - 0x18]
sub eax, esi
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x4c]
lea ebx, [eax - 5]
mov eax, dword [ebp + 0x14]
add eax, edx
add eax, 0xfffffff5
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x3c]
test eax, eax
mov ecx, dword [ebp - 0x50]
cmove ecx, eax
mov dword [ebp - 0x50], ecx
imul eax, dword [edx], 0x9e3779b1
shr eax, 0x14
mov ecx, dword [ebp + 8]
mov dword [ecx + eax*4], esi
lea eax, [edx + 1]
mov dword [ebp - 0x1c], eax
mov eax, edi
shl eax, 6
or eax, 1
lea ecx, [edx + 2]
inc esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x38], ebx
lea esi, [ebx - 3]
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x40], esi
lea esi, [edx + 4]
mov dword [ebp - 0x84], esi
mov esi, dword [ebp + 0x14]
lea esi, [esi + edx - 5]
mov dword [ebp - 0x80], esi
mov esi, edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x24], esi
mov edx, dword [ebx]
mov esi, edi
mov edi, eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x30], ebx
mov ebx, ecx
imul edx, edx, 0x9e3779b1
shr edx, 0x14
mov esi, dword [ebp + 8]
mov ecx, dword [esi + edx*4]
cmp ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebx]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x20]
mov dword [esi + edx*4], ebx
mov ebx, eax
cmovb ebx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x44]
jb 0x1005e0f2
lea edx, [ecx + 0xffff]
cmp edx, dword [ebp - 0x20]
jb 0x1005e0f2
mov edx, dword [ebx + ecx]
mov eax, dword [ebp - 0x30]
cmp edx, dword [eax]
je 0x1005e11b
mov ebx, dword [ebp - 0x1c]
mov ecx, ebx
mov eax, dword [ebp - 0x34]
sub ecx, eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x2c]
add ecx, ebx
lea edx, [edi + 1]
shr edi, 6
mov esi, edi
mov edi, edx
cmp ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
jbe 0x1005e0aa
jmp 0x1005ed03
cmp ecx, dword [ebp - 0x18]
mov eax, dword [ebp + 0xc]
cmovb eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov eax, ebx
sub dword [ebp - 0x20], ecx
add eax, ecx
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x30]
mov eax, ecx
mov ebx, dword [ebp - 0x24]
sub eax, ebx
lea esi, [eax - 0xf]
lea edi, [ecx + 0xef]
mov edx, ebx
shl dl, 4
shl cl, 4
sub cl, dl
mov edx, ebx
mov ebx, edi
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x64], esi
mov esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x74], ebx
mov byte [ebp - 0x68], cl
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x60]
lea edi, [eax + esi]
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x30]
add eax, esi
mov dword [ebp - 0x2c], eax
cmp edi, dword [ebp - 0x1c]
jbe 0x1005e1c0
cmp dword [ebp - 0x2c], edx
jbe 0x1005e1c0
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov ch, byte [eax + esi - 1]
lea eax, [esi - 1]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x7c]
dec eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x74]
lea ebx, [eax - 1]
mov cl, byte [ebp - 0x68]
add cl, 0xf0
mov eax, dword [ebp - 0x58]
dec eax
mov edx, dword [ebp - 0x60]
cmp ch, byte [edx + esi - 1]
mov edx, dword [ebp - 0x24]
je 0x1005e160
mov ebx, dword [ebp - 0x48]
mov ecx, ebx
sub ecx, edx
add ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x58]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, ecx
mov esi, dword [ebp - 0x14]
lea eax, [esi + edx]
add eax, 9
cmp eax, dword [ebp - 0x54]
ja 0x1005cfea
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
sub edx, eax
lea ecx, [edx + esi]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x48], ebx
lea ecx, [ebx + 1]
cmp dword [ebp - 0x30], 0xf
jb 0x1005e29c
mov ebx, esi
mov esi, dword [ebp - 0x6c]
add esi, ebx
mov ebx, dword [ebp - 0x48]
mov byte [ebx], 0xf0
mov dword [ebp - 0x6c], esi
cmp esi, 0xff
jl 0x1005e2a6
mov eax, 0x1fd
mov esi, dword [ebp - 0x7c]
cmp esi, eax
cmovge esi, eax
mov eax, edx
sub eax, esi
mov ebx, dword [ebp - 0x14]
add eax, ebx
add eax, 0xef
mov dword [ebp - 0x30], edx
mov edx, 0x80808081
mul edx
shr edx, 7
mov dword [ebp - 0x60], edx
lea eax, [edx + 1]
push eax
push 0xff
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x74]
sub eax, esi
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x60]
add ecx, eax
add ecx, 2
add edx, dword [ebp - 0x30]
add ebx, edx
add ebx, 0xfffffef2
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
jmp 0x1005e2ab
mov bl, byte [ebp - 0x68]
mov esi, dword [ebp - 0x48]
mov byte [esi], bl
jmp 0x1005e2ae
mov esi, ebx
mov ebx, dword [ebp - 0x6c]
mov byte [ecx], bl
inc ecx
add edx, ecx
add edx, dword [ebp - 0x14]
movq xmm0, qword [eax]
movq qword [ecx], xmm0
add ecx, 8
add eax, 8
cmp ecx, edx
jb 0x1005e2b3
mov dword [ebp - 0x14], esi
mov ecx, edx
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x20]
mov word [ecx], ax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x3c]
je 0x1005e436
lea eax, [esi + 4]
cmp dword [ebp - 0x40], eax
jbe 0x1005ee7c
mov ecx, dword [esi + 4]
xor ecx, dword [edi + 4]
je 0x1005e481
bsf ebx, ecx
shr ebx, 3
add esi, ebx
add esi, 4
mov dword [ebp - 0x24], esi
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov ecx, dword [ebp - 0x30]
lea eax, [ecx + edx]
add eax, 8
cmp eax, dword [ebp - 0x54]
ja 0x1005cfea
mov edx, ecx
lea esi, [ecx + 2]
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx]
cmp ebx, 0xf
jb 0x1005e3a6
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [esi], 0xffffffff
cmp eax, 0x3fc
jb 0x1005e38d
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mov esi, edx
mul ecx
mov edi, edx
lea eax, [esi + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea esi, [esi + edi*4]
add esi, 6
imul eax, edi, 0xfffffc04
add eax, ebx
add eax, 0xfffffbf5
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add eax, ecx
add esi, ecx
inc esi
mov dword [ebp - 0x48], esi
mov byte [esi - 1], al
jmp 0x1005e3ad
mov dword [ebp - 0x48], esi
add al, bl
mov byte [ecx], al
mov esi, dword [ebp - 0x24]
cmp esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
jae 0x1005ce17
imul eax, dword [esi - 2], 0x9e3779b1
mov dword [ebp - 0x18], ecx
lea ecx, [esi - 2]
shr eax, 0x14
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x34]
sub ecx, edi
mov dword [edx + eax*4], ecx
imul ecx, dword [esi], 0x9e3779b1
shr ecx, 0x14
mov ebx, esi
sub ebx, edi
mov eax, dword [edx + ecx*4]
cmp eax, dword [ebp - 0x18]
cmovb edi, dword [ebp - 0x10]
mov dword [ebp - 0x20], ebx
mov dword [edx + ecx*4], ebx
mov ecx, dword [ebp + 0xc]
cmovb ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ebp - 0x44]
jb 0x1005e57f
lea ecx, [eax + 0xffff]
cmp ecx, dword [ebp - 0x20]
jb 0x1005e57f
add edi, eax
mov ecx, dword [edi]
cmp ecx, dword [esi]
jne 0x1005e57f
mov edx, dword [ebp - 0x48]
lea ecx, [edx + 1]
mov byte [edx], 0
sub dword [ebp - 0x20], eax
mov dword [ebp - 0x14], edx
jmp 0x1005e2cd
mov edx, dword [ebp - 0x50]
sub edx, edi
add edx, esi
mov eax, dword [ebp - 0x38]
cmp edx, eax
cmova edx, eax
lea ebx, [esi + 4]
mov ecx, esi
mov dword [ebp - 0x20], edx
add edx, 0xfffffffd
cmp edx, ebx
jbe 0x1005ee90
mov eax, dword [ecx + 4]
xor eax, dword [edi + 4]
je 0x1005e4ec
bsf ebx, eax
shr ebx, 3
mov edx, ecx
mov ecx, dword [ebp - 0x20]
lea eax, [ebx + edx]
add eax, 4
cmp eax, ecx
je 0x1005e4c3
mov dword [ebp - 0x24], eax
jmp 0x1005e308
lea ebx, [esi + 8]
add edi, 8
cmp ebx, dword [ebp - 0x40]
mov dword [ebp - 0x24], esi
jae 0x1005ec9f
mov ecx, ebx
sub ecx, esi
add ecx, 0xfffffffc
mov edx, dword [ebx]
xor edx, dword [edi]
jne 0x1005e4b3
add ebx, 4
add edi, 4
add ecx, 4
cmp ebx, dword [ebp - 0x40]
jb 0x1005e49a
jmp 0x1005ec9f
bsf ebx, edx
shr ebx, 3
add ebx, ecx
mov esi, dword [ebp - 0x24]
jmp 0x1005e300
mov dword [ebp - 0x24], edx
mov edx, ecx
mov eax, dword [ebp + 0xc]
mov esi, ecx
mov ecx, eax
cmp dword [ebp - 0x40], esi
jbe 0x1005e539
mov eax, dword [esi]
mov ecx, dword [ebp + 0xc]
xor eax, dword [ecx]
je 0x1005e530
bsf edx, eax
shr edx, 3
add ebx, edx
add esi, edx
jmp 0x1005e305
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], ecx
lea ebx, [ecx + 8]
lea ecx, [edi + 8]
cmp ebx, edx
jae 0x1005ed0b
mov esi, ebx
sub esi, dword [ebp - 0x24]
add esi, 0xfffffffc
mov eax, dword [ebx]
xor eax, dword [ecx]
jne 0x1005e520
add ebx, 4
add ecx, 4
add esi, 4
cmp ebx, edx
jb 0x1005e508
jmp 0x1005ed0b
bsf ebx, eax
shr ebx, 3
add ebx, esi
mov edx, dword [ebp - 0x24]
jmp 0x1005e46c
lea edx, [esi + 4]
mov ecx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x40]
jae 0x1005edd4
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x50]
sub eax, edi
mov esi, dword [ebp - 0x80]
cmp eax, esi
cmovae eax, esi
mov esi, edx
sub esi, eax
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1005e56f
add edx, 4
add ecx, 4
add esi, 4
cmp edx, dword [ebp - 0x40]
jb 0x1005e556
jmp 0x1005edd4
bsf edx, eax
shr edx, 3
add edx, esi
mov esi, dword [ebp - 0x20]
jmp 0x1005e4e3
lea ebx, [esi + 1]
mov eax, ebx
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x20], eax
lea ecx, [esi + 2]
cmp ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x78]
jbe 0x1005e09e
jmp 0x1005ce17
mov ebx, dword [ebp + 0xc]
mov eax, ebx
mov esi, dword [ebp - 0x18]
sub eax, esi
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffffb
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x14]
add eax, ebx
add eax, 0xfffffff5
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x3c]
test eax, eax
mov ecx, dword [ebp - 0x48]
cmove ecx, eax
mov dword [ebp - 0x48], ecx
imul eax, dword [ebx], 0x9e3779b1
shr eax, 0x14
mov ecx, dword [ebp + 8]
mov dword [ecx + eax*4], esi
lea eax, [ebx + 1]
mov dword [ebp - 0x2c], eax
mov edi, edx
shl edi, 6
or edi, 1
lea eax, [ebx + 2]
inc esi
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 3]
mov dword [ebp - 0x30], ecx
lea ecx, [ebx + 4]
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp + 0x14]
lea ecx, [ecx + ebx - 5]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], edx
mov ecx, edi
mov edi, dword [ebp - 0x40]
mov ebx, esi
mov dword [ebp - 0x20], eax
imul edx, dword [ebp - 0x1c], 0x9e3779b1
shr edx, 0x14
mov eax, dword [ebp + 8]
mov esi, dword [eax + edx*4]
cmp esi, dword [ebp - 0x18]
cmovb edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, esi
mov esi, dword [ebp + 8]
mov dword [esi + edx*4], ebx
lea edx, [eax + 0xffff]
cmp edx, ebx
jb 0x1005e66f
mov edx, dword [edi + eax]
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x2c]
cmp edx, dword [edi]
mov edi, dword [ebp - 0x28]
je 0x1005e696
mov esi, dword [ebp - 0x20]
mov ebx, esi
mov edi, dword [ebp - 0x40]
sub ebx, edi
mov eax, dword [ebp - 0x14]
add eax, esi
lea edx, [ecx + 1]
shr ecx, 6
mov dword [ebp - 0x14], ecx
mov ecx, edx
mov dword [ebp - 0x2c], esi
cmp eax, dword [ebp - 0x34]
jbe 0x1005e62b
jmp 0x1005d167
cmp eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
cmovb ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x14], ecx
sub ebx, eax
mov dword [ebp - 0x6c], ebx
add edi, eax
mov ebx, dword [ebp - 0x2c]
mov ecx, ebx
mov edx, dword [ebp - 0x10]
sub ecx, edx
lea esi, [ecx - 0xf]
lea eax, [ebx + 0xef]
mov dword [ebp - 0x38], eax
mov eax, edx
shl al, 4
mov dword [ebp - 0x2c], ebx
shl bl, 4
sub bl, al
xor eax, eax
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], esi
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x68], esi
mov byte [ebp - 0x64], bl
mov dword [ebp - 0x60], ecx
lea esi, [edi + eax]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x2c]
add ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], esi
cmp esi, dword [ebp - 0x14]
jbe 0x1005e729
cmp dword [ebp - 0x28], edx
jbe 0x1005e729
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov bh, byte [eax + edx - 1]
lea eax, [edx - 1]
mov ecx, dword [ebp - 0x5c]
lea esi, [ecx - 1]
mov ecx, dword [ebp - 0x68]
dec ecx
mov dword [ebp - 0x38], ecx
mov bl, byte [ebp - 0x64]
add bl, 0xf0
mov ecx, dword [ebp - 0x60]
dec ecx
cmp bh, byte [edi + edx - 1]
mov edx, dword [ebp - 0x10]
je 0x1005e6d2
mov dword [ebp - 0x10], edx
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x24]
mov ecx, edi
sub ecx, edx
add ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x60]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, ecx
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx + edx]
add eax, 9
cmp eax, dword [ebp - 0x54]
ja 0x1005cfea
mov edx, ecx
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
sub esi, eax
add ecx, esi
mov dword [ebp - 0x2c], ecx
mov ecx, edi
inc edi
cmp dword [ebp - 0x2c], 0xf
jb 0x1005e807
mov edx, dword [ebp - 0x58]
add edx, dword [ebp - 0x1c]
mov byte [ecx], 0xf0
mov dword [ebp - 0x58], edx
cmp edx, 0xff
mov edx, dword [ebp - 0x1c]
jl 0x1005e811
mov eax, 0x1fd
mov ecx, dword [ebp - 0x5c]
cmp ecx, eax
cmovge ecx, eax
mov dword [ebp - 0x5c], ecx
mov eax, esi
sub eax, ecx
add eax, edx
add eax, 0xef
mov edx, 0x80808081
mul edx
shr edx, 7
mov dword [ebp - 0x2c], edx
lea eax, [edx + 1]
push eax
push 0xff
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x68]
sub eax, ecx
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
lea edi, [eax + ecx]
add edi, 2
add edx, esi
mov eax, dword [ebp - 0x1c]
add eax, edx
add eax, 0xfffffef2
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x10]
jmp 0x1005e814
mov dl, byte [ebp - 0x64]
mov byte [ecx], dl
mov edx, dword [ebp - 0x6c]
jmp 0x1005e820
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x58]
mov byte [edi], cl
inc edi
mov ecx, dword [ebp - 0x24]
add esi, edi
add esi, dword [ebp - 0x1c]
movq xmm0, qword [eax]
movq qword [edi], xmm0
add edi, 8
add eax, 8
cmp edi, esi
jb 0x1005e825
mov dword [ebp - 0x1c], ecx
mov ecx, esi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov word [ecx], dx
cmp ebx, dword [ebp - 0x3c]
je 0x1005e9a7
lea edi, [esi + 4]
cmp dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x20]
jbe 0x1005ee86
mov ecx, dword [esi + 4]
xor ecx, dword [eax + 4]
je 0x1005e9ee
bsf ebx, ecx
shr ebx, 3
add esi, ebx
add esi, 4
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x1c]
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov ecx, dword [ebp - 0x2c]
lea eax, [ecx + edx]
add eax, 8
cmp eax, dword [ebp - 0x54]
ja 0x1005cfea
mov edx, ecx
add ecx, 2
mov al, byte [esi]
cmp ebx, 0xf
jb 0x1005e917
add al, 0xf
mov byte [esi], al
lea eax, [ebx - 0xf]
mov dword [ecx], 0xffffffff
cmp eax, 0x3fc
mov esi, ecx
jb 0x1005e8fe
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mov esi, edx
mul ecx
mov edi, edx
lea eax, [esi + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea esi, [esi + edi*4]
add esi, 6
imul eax, edi, 0xfffffc04
add eax, ebx
add eax, 0xfffffbf5
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add eax, ecx
add esi, ecx
inc esi
mov dword [ebp - 0x24], esi
mov byte [esi - 1], al
jmp 0x1005e91e
mov dword [ebp - 0x24], ecx
add al, bl
mov byte [esi], al
mov edi, dword [ebp - 0x10]
cmp edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x40]
jae 0x1005d167
lea eax, [edi - 2]
imul ecx, dword [edi - 2], 0x9e3779b1
shr ecx, 0x14
sub eax, esi
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4], eax
imul ecx, dword [edi], 0x9e3779b1
shr ecx, 0x14
mov dword [ebp - 0x20], ecx
mov eax, edx
mov dword [ebp - 0x10], edi
mov edx, edi
sub edx, esi
mov eax, dword [eax + ecx*4]
cmp eax, dword [ebp - 0x18]
cmovb esi, dword [ebp - 0x44]
mov ebx, dword [ebp + 0xc]
cmovb ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0x20]
mov dword [ecx + edi*4], edx
lea ecx, [eax + 0xffff]
cmp ecx, edx
jb 0x1005eaf4
add esi, eax
mov ecx, dword [esi]
mov edi, dword [ebp - 0x10]
cmp ecx, dword [edi]
jne 0x1005eaf4
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x24]
lea ecx, [esi + 1]
mov byte [esi], 0
sub edx, eax
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
jmp 0x1005e83f
mov edi, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x20]
sub edi, ebx
add edi, esi
mov ecx, dword [ebp - 0x50]
cmp edi, ecx
cmova edi, ecx
lea eax, [esi + 4]
lea edx, [edi - 3]
mov dword [ebp - 0x14], eax
cmp edx, eax
jbe 0x1005ee9e
mov ecx, dword [esi + 4]
xor ecx, dword [ebx + 4]
je 0x1005ea5a
bsf ebx, ecx
shr ebx, 3
lea ecx, [ebx + esi]
add ecx, 4
cmp ecx, edi
je 0x1005ea30
mov dword [ebp - 0x10], ecx
jmp 0x1005e877
lea ebx, [esi + 8]
add eax, 8
cmp ebx, dword [ebp - 0x30]
mov dword [ebp - 0x10], esi
jae 0x1005ecce
mov ecx, ebx
sub ecx, esi
add ecx, 0xfffffffc
mov edx, dword [ebx]
xor edx, dword [eax]
jne 0x1005ea20
add ebx, 4
add eax, 4
add ecx, 4
cmp ebx, dword [ebp - 0x30]
jb 0x1005ea07
jmp 0x1005ecce
bsf ebx, edx
shr ebx, 3
add ebx, ecx
mov esi, dword [ebp - 0x10]
jmp 0x1005e86f
mov dword [ebp - 0x10], esi
mov edx, edi
mov esi, dword [ebp + 0xc]
mov ecx, esi
cmp dword [ebp - 0x30], edi
jbe 0x1005eaa9
mov ecx, dword [edi]
xor ecx, dword [esi]
je 0x1005eaa3
bsf edx, ecx
shr edx, 3
mov esi, dword [ebp - 0x1c]
add ebx, edx
add edi, edx
mov dword [ebp - 0x10], edi
jmp 0x1005e87a
mov eax, ebx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x10], esi
lea ebx, [esi + 8]
lea ecx, [eax + 8]
cmp ebx, edx
jae 0x1005ed2e
mov esi, ebx
sub esi, dword [ebp - 0x10]
add esi, 0xfffffffc
mov edi, dword [ebx]
xor edi, dword [ecx]
jne 0x1005ea90
add ebx, 4
add ecx, 4
add esi, 4
cmp ebx, edx
jb 0x1005ea78
jmp 0x1005ed2e
bsf ebx, edi
shr ebx, 3
add ebx, esi
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0x28]
jmp 0x1005e9dc
lea edx, [edi + 4]
mov ecx, dword [ebp - 0x78]
mov eax, edi
cmp edx, dword [ebp - 0x30]
jae 0x1005ee03
mov edi, dword [ebp - 0x10]
add edi, dword [ebp - 0x48]
sub edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x7c]
cmp edi, esi
cmovae edi, esi
mov esi, edx
sub esi, edi
mov edi, dword [edx]
xor edi, dword [ecx]
jne 0x1005eae2
add edx, 4
add ecx, 4
add esi, 4
cmp edx, dword [ebp - 0x30]
jb 0x1005eac9
jmp 0x1005ee03
bsf edx, edi
shr edx, 3
add edx, esi
mov esi, dword [ebp - 0x1c]
mov edi, eax
jmp 0x1005ea4e
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 1]
mov esi, ecx
sub esi, dword [ebp - 0x40]
add eax, 2
cmp eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x74]
jbe 0x1005e619
jmp 0x1005d167
mov eax, ecx
shl al, 4
mov esi, dword [ebp - 0x38]
mov byte [esi], al
lea edi, [esi + 1]
mov edx, dword [ebp - 0x28]
jmp 0x1005ccff
mov ecx, dword [ebp - 0x50]
dec ecx
cmp ebx, ecx
jae 0x1005eb43
mov edx, ebx
movzx ecx, word [esi]
cmp cx, word [ebx]
jne 0x1005eb43
add ebx, 2
add esi, 2
cmp ebx, dword [ebp - 0x50]
jae 0x1005eb52
mov cl, byte [esi]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x10]
sub ebx, eax
jmp 0x1005c9b5
mov eax, ecx
shl al, 4
mov byte [esi], al
lea eax, [esi + 1]
mov edx, dword [ebp - 0x24]
jmp 0x1005d203
mov eax, ecx
shl al, 4
mov byte [esi], al
lea eax, [esi + 1]
mov edx, dword [ebp - 0x10]
jmp 0x1005d203
mov ecx, dword [ebp - 0x18]
dec ecx
cmp eax, ecx
jae 0x1005ebd7
movzx ecx, word [edi]
cmp cx, word [eax]
mov ecx, eax
mov ebx, dword [ebp - 0x1c]
jne 0x1005ebdc
add ecx, 2
add edi, 2
jmp 0x1005ebdc
mov ebx, dword [ebp - 0x44]
jmp 0x1005d04f
mov ecx, dword [ebp - 0x58]
dec ecx
cmp ebx, ecx
jae 0x1005ebbe
movzx ecx, word [edi]
cmp cx, word [ebx]
jne 0x1005ebbe
add ebx, 2
add edi, 2
cmp ebx, dword [ebp - 0x58]
jae 0x1005ebcd
mov cl, byte [edi]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
mov edx, dword [ebp - 0x28]
sub ebx, eax
jmp 0x1005d528
mov ecx, eax
mov ebx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x18]
jae 0x1005ebef
mov eax, ecx
mov cl, byte [edi]
lea edx, [eax + 1]
cmp cl, byte [eax]
mov ecx, eax
cmove ecx, edx
mov eax, dword [ebp - 0x10]
sub ecx, ebx
jmp 0x1005cbef
movzx edx, word [esi]
cmp dx, word [ebx]
jne 0x1005dbd7
add ebx, 2
add esi, 2
jmp 0x1005dbd7
mov dl, byte [esi]
lea esi, [ebx + 1]
cmp dl, byte [ebx]
cmove ebx, esi
jmp 0x1005dbe3
movzx edx, word [esi]
cmp dx, word [ebx]
jne 0x1005dfd5
add ebx, 2
add esi, 2
jmp 0x1005dfd5
mov dl, byte [esi]
lea esi, [ebx + 1]
cmp dl, byte [ebx]
cmove ebx, esi
jmp 0x1005dfe1
mov ecx, dword [ebp - 0x50]
dec ecx
cmp edx, ecx
jae 0x1005ec5b
movzx ecx, word [edi]
cmp cx, word [edx]
jne 0x1005ec5b
add edx, 2
add edi, 2
cmp edx, dword [ebp - 0x50]
jae 0x1005ec6a
mov cl, byte [edi]
lea esi, [edx + 1]
cmp cl, byte [edx]
cmove edx, esi
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x18]
sub edx, eax
jmp 0x1005cba1
mov esi, dword [ebp - 0x1c]
lea eax, [esi - 1]
cmp ebx, eax
jae 0x1005ed5f
movzx eax, word [ecx]
cmp ax, word [ebx]
mov edx, dword [ebp - 0x28]
jne 0x1005ed62
add ebx, 2
add ecx, 2
jmp 0x1005ed62
mov ecx, dword [ebp - 0x38]
dec ecx
cmp ebx, ecx
jae 0x1005ecb5
movzx ecx, word [edi]
cmp cx, word [ebx]
jne 0x1005ecb5
add ebx, 2
add edi, 2
cmp ebx, dword [ebp - 0x38]
jae 0x1005ecc4
mov cl, byte [edi]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
mov esi, dword [ebp - 0x24]
sub ebx, eax
jmp 0x1005e300
mov edx, eax
mov ecx, dword [ebp - 0x50]
dec ecx
cmp ebx, ecx
jae 0x1005ecea
movzx ecx, word [edx]
cmp cx, word [ebx]
jne 0x1005ecea
mov eax, edx
add ebx, 2
add eax, 2
mov edx, eax
cmp ebx, dword [ebp - 0x50]
jae 0x1005ecf9
mov cl, byte [edx]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
mov esi, dword [ebp - 0x10]
sub ebx, edi
jmp 0x1005e86f
mov esi, dword [ebp - 0x24]
jmp 0x1005ce17
mov eax, dword [ebp - 0x20]
dec eax
cmp ebx, eax
jae 0x1005edaa
movzx eax, word [ecx]
cmp ax, word [ebx]
mov edx, dword [ebp - 0x24]
jne 0x1005edad
add ebx, 2
add ecx, 2
jmp 0x1005edad
mov edi, dword [ebp - 0x28]
lea edx, [edi - 1]
cmp ebx, edx
jae 0x1005ed46
movzx edx, word [ecx]
cmp dx, word [ebx]
jne 0x1005ed46
add ebx, 2
add ecx, 2
cmp ebx, edi
jae 0x1005ed54
mov cl, byte [ecx]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
mov esi, dword [ebp - 0x10]
sub ebx, dword [ebp - 0x14]
jmp 0x1005e9dc
mov edx, dword [ebp - 0x28]
cmp ebx, esi
jae 0x1005ed70
mov al, byte [ecx]
lea ecx, [ebx + 1]
cmp al, byte [ebx]
cmove ebx, ecx
mov eax, dword [ebp - 0x14]
sub ebx, eax
jmp 0x1005d6a1
add esi, 4
mov ebx, eax
jmp 0x1005cb3e
mov eax, dword [ebp - 0x58]
dec eax
cmp edx, eax
jae 0x1005ee31
movzx eax, word [ecx]
cmp ax, word [edx]
mov esi, dword [ebp - 0x1c]
jne 0x1005ee34
add edx, 2
add ecx, 2
jmp 0x1005ee34
mov edx, dword [ebp - 0x24]
cmp ebx, dword [ebp - 0x20]
jae 0x1005edbc
mov al, byte [ecx]
lea ecx, [ebx + 1]
cmp al, byte [ebx]
cmove ebx, ecx
sub ebx, dword [ebp - 0x1c]
jmp 0x1005e46c
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], eax
lea edi, [esi + 4]
mov eax, ebx
jmp 0x1005cbb9
mov eax, dword [ebp - 0x38]
dec eax
cmp edx, eax
jae 0x1005edea
movzx eax, word [ecx]
cmp ax, word [edx]
jne 0x1005edea
add edx, 2
add ecx, 2
cmp edx, dword [ebp - 0x38]
jae 0x1005edf9
mov al, byte [ecx]
lea ecx, [edx + 1]
cmp al, byte [edx]
cmove edx, ecx
mov esi, dword [ebp - 0x20]
sub edx, esi
jmp 0x1005e4e3
mov esi, dword [ebp - 0x50]
dec esi
cmp edx, esi
jae 0x1005ee54
movzx esi, word [ecx]
cmp si, word [edx]
mov edi, eax
jne 0x1005ee56
add edx, 2
add ecx, 2
jmp 0x1005ee56
add esi, 4
mov ebx, eax
jmp 0x1005db76
add esi, 4
mov ebx, eax
jmp 0x1005df75
mov esi, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x58]
jae 0x1005ee43
mov al, byte [ecx]
lea ecx, [edx + 1]
cmp al, byte [edx]
cmove edx, ecx
sub edx, esi
jmp 0x1005d716
add edi, 4
mov ebx, eax
jmp 0x1005d6b9
mov edi, eax
cmp edx, dword [ebp - 0x50]
jae 0x1005ee65
mov cl, byte [ecx]
lea esi, [edx + 1]
cmp cl, byte [edx]
cmove edx, esi
mov esi, dword [ebp - 0x1c]
sub edx, edi
jmp 0x1005ea4e
mov dword [ebp - 0x28], ecx
lea ecx, [edi + 4]
mov ebx, eax
jmp 0x1005d72b
add edi, 4
mov ebx, eax
jmp 0x1005e487
add eax, 4
mov ebx, edi
jmp 0x1005e9f4
mov dword [ebp - 0x24], ecx
lea ecx, [edi + 4]
mov dword [ebp - 0x1c], ebx
jmp 0x1005e4f8
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x10], esi
lea ecx, [ebx + 4]
mov ebx, dword [ebp - 0x14]
jmp 0x1005ea68