Function at 0x10059af0
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 0x10059bb1
add ebx, 0xffff0000
movd xmm0, ebx
pshufd xmm0, xmm0, 0
xor eax, eax
movdqa xmm1, xmmword [0x1006a0f0]
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 0x10059b43
mov eax, dword [ebp + 8]
mov dword [eax + 0x4000], 0x10000
mov edi, dword [eax + 0x4010]
cmp edi, 0x10001
jb 0x10059b9b
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 0x10059bb6
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 0x1005a38d
lea esi, [edi - 1]
cmp esi, 2
mov ecx, dword [ebp + 0x14]
ja 0x10059c00
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 0x10059c3b
cmp esi, ebx
jae 0x10059c3b
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 0x1005a318
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x400c]
mov dword [ebp - 0x24], eax
test eax, eax
je 0x1005a395
cmp ecx, 0x1001
jl 0x1005a4ae
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 0x1005a5ec
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 0x10059daa
mov eax, esi
mov edx, dword [edi + esi]
mov ebx, edi
mov edi, dword [ebp - 0x14]
cmp edx, dword [edi]
je 0x10059dd1
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 0x10059d67
jmp 0x1005a25d
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 0x10059e76
cmp ebx, edx
jbe 0x10059e76
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 0x10059e15
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 0x1005a5ea
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 0x10059f5b
mov ebx, dword [ebp - 0x5c]
add ebx, dword [ebp - 0x20]
mov byte [edi], 0xf0
mov dword [ebp - 0x5c], ebx
cmp ebx, 0xff
jl 0x10059f53
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 0x10059f60
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 0x10059f68
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 0x1005a0ed
lea eax, [edx + 4]
cmp dword [ebp - 0x2c], eax
jbe 0x1005c37a
mov ecx, dword [edx + 4]
xor ecx, dword [esi + 4]
je 0x1005a138
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 0x1005a5ea
mov edx, ecx
lea esi, [ecx + 2]
mov ecx, dword [ebp - 0x20]
mov al, byte [ecx]
cmp ebx, 0xf
jb 0x1005a064
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [esi], 0xffffffff
cmp eax, 0x3fc
jb 0x1005a04b
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 0x1005a06b
mov dword [ebp - 0x3c], esi
add al, bl
mov byte [ecx], al
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x34]
jae 0x1005a25d
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 0x1005a240
add esi, eax
mov ecx, dword [esi]
cmp ecx, dword [edx]
jne 0x1005a240
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 0x10059f85
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 0x1005c3c4
mov ecx, dword [eax + 4]
xor ecx, dword [esi + 4]
je 0x1005a1ad
bsf ecx, ecx
shr ecx, 3
mov dword [ebp - 0x18], ecx
add ecx, eax
add ecx, 4
cmp ecx, edi
je 0x1005a17e
mov dword [ebp - 0x10], ecx
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x18]
jmp 0x10059fbd
lea ebx, [edx + 8]
add esi, 8
mov dword [ebp - 0x10], edx
cmp ebx, dword [ebp - 0x2c]
jae 0x1005c12b
mov edx, ebx
sub edx, dword [ebp - 0x10]
add edx, 0xfffffffc
mov ecx, dword [ebx]
xor ecx, dword [esi]
jne 0x1005a16b
add ebx, 4
add esi, 4
add edx, 4
cmp ebx, dword [ebp - 0x2c]
jb 0x1005a152
jmp 0x1005c12b
bsf ebx, ecx
shr ebx, 3
add ebx, edx
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x10]
jmp 0x10059fb5
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 0x1005a1fd
mov ecx, dword [eax]
xor ecx, dword [ebx]
je 0x1005a1f7
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 0x10059fbd
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 0x1005c183
mov ebx, eax
sub ebx, dword [ebp - 0x10]
add ebx, 0xfffffffc
mov ecx, dword [eax]
xor ecx, dword [edi]
jne 0x1005a1e4
add eax, 4
add edi, 4
add ebx, 4
cmp eax, edx
jb 0x1005a1cc
jmp 0x1005c183
bsf ecx, ecx
shr ecx, 3
add ecx, ebx
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x18]
jmp 0x1005a11e
lea edx, [eax + 4]
mov edi, dword [ebp - 0x80]
cmp edx, dword [ebp - 0x2c]
jae 0x1005c245
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 0x1005a233
add edx, 4
add edi, 4
add esi, 4
cmp edx, dword [ebp - 0x2c]
jb 0x1005a21a
jmp 0x1005c245
bsf edx, ecx
shr edx, 3
add edx, esi
jmp 0x1005a19b
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 0x10059d56
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 0x1005a5ec
mov ecx, esi
cmp esi, 0xf
jb 0x1005b60f
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 0x1005a2f2
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 0x1005a5ec
cmp edi, 0xffff
ja 0x1005a5cf
mov eax, dword [ebp - 0x18]
sub eax, edi
mov dword [ebp - 0x30], eax
jbe 0x1005a5cf
cmp ecx, 0x7e000000
ja 0x1005a5da
test ecx, ecx
je 0x1005a6f0
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 0x1005ade2
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp + 0xc]
jmp 0x1005a64f
mov ecx, dword [ebp + 0x14]
jmp 0x10059c00
cmp edi, 0xffff
mov dword [ebp - 0x3c], edx
ja 0x1005a5de
mov eax, dword [ebp - 0x18]
sub eax, edi
mov dword [ebp - 0x44], eax
jbe 0x1005a5de
cmp ecx, 0x7e000000
ja 0x1005a5ea
test ecx, ecx
je 0x1005a81a
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 0x1005b624
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 0x1005a5ec
mov ecx, edi
cmp edi, 0xf
jb 0x1005c15f
lea eax, [ecx - 0xf]
mov byte [esi], 0xf0
mov edi, ecx
lea ecx, [esi + 1]
cmp eax, 0xff
mov dword [ebp - 0x4c], edi
jb 0x1005a4a6
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 0x1005a7f7
xor eax, eax
cmp ecx, 0x7e000000
ja 0x1005a5ec
test ecx, ecx
je 0x1005a82a
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 0x1005a842
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 0x1005a5ec
mov ecx, edi
cmp edi, 0xf
jb 0x1005c116
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 0x1005a5c7
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 0x1005a2f5
cmp ecx, 0x7e000000
mov ebx, dword [ebp + 0xc]
jbe 0x1005a609
xor eax, eax
jmp 0x1005a601
cmp ecx, 0x7e000000
jbe 0x1005a70d
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 0x1005a6f0
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 0x1005b1ea
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 0x1005a601
mov ecx, esi
cmp esi, 0xf
jb 0x1005b5e8
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 0x1005a6df
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 0x1005b5f5
cmp dword [ebp + 0x18], 0
mov eax, 0
jle 0x1005a601
mov eax, dword [ebp + 0x10]
mov byte [eax], 0
xor eax, eax
inc eax
jmp 0x1005a601
test ecx, ecx
je 0x1005a81a
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 0x1005bba1
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 0x1005a5ec
mov ecx, edi
cmp edi, 0xf
jb 0x1005c171
lea eax, [ecx - 0xf]
mov byte [esi], 0xf0
mov edi, ecx
lea ecx, [esi + 1]
cmp eax, 0xff
mov dword [ebp - 0x4c], edi
jb 0x1005a7f4
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 0x1005a310
cmp dword [ebp + 0x18], 0
mov eax, 0
jg 0x1005a834
jmp 0x1005a5ec
cmp dword [ebp + 0x18], 0
jle 0x1005a5ec
mov eax, dword [ebp + 0x10]
mov byte [eax], 0
xor eax, eax
inc eax
jmp 0x1005a5ec
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 0x1005a90f
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 0x1005a91e
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 0x1005a942
mov ecx, dword [ebp - 0x44]
mov esi, dword [ecx]
mov ebx, dword [ebp - 0x2c]
cmp esi, dword [ebx]
je 0x1005a96d
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 0x1005a8dc
jmp 0x1005a532
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 0x1005a9fe
cmp eax, dword [ebp - 0x28]
jbe 0x1005a9fe
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 0x1005a99a
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 0x1005a5ea
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 0x1005aacb
add dword [ebp - 0x78], esi
mov ebx, dword [ebp - 0x38]
mov byte [ebx], 0xf0
mov ebx, dword [ebp - 0x78]
cmp ebx, 0xff
jl 0x1005aac6
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 0x1005aad3
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 0x1005aad8
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 0x1005ac6b
lea eax, [edx + 4]
cmp dword [ebp - 0x40], eax
jbe 0x1005c44a
mov ecx, dword [edx + 4]
xor ecx, dword [edi + 4]
je 0x1005acb3
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 0x1005a5ea
mov edx, ecx
add ecx, 2
mov esi, dword [ebp - 0x20]
mov al, byte [esi]
cmp ebx, 0xf
jb 0x1005abcf
add al, 0xf
mov byte [esi], al
lea eax, [ebx - 0xf]
mov dword [ecx], 0xffffffff
cmp eax, 0x3fc
jb 0x1005abb5
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 0x1005abd3
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 0x1005a532
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 0x1005ac26
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 0x1005ac2f
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 0x1005adc0
mov ecx, dword [edi]
cmp ecx, dword [edx]
jne 0x1005adc0
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 0x1005aaf5
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 0x1005c46f
mov eax, dword [ecx + 4]
xor eax, dword [edi + 4]
je 0x1005ad22
bsf ebx, eax
shr ebx, 3
mov edx, ecx
lea eax, [ebx + edx]
add eax, 4
cmp eax, esi
je 0x1005acf5
mov dword [ebp - 0x28], eax
jmp 0x1005ab30
lea ebx, [edx + 8]
add edi, 8
cmp ebx, dword [ebp - 0x40]
mov dword [ebp - 0x28], edx
jae 0x1005c1a8
mov ecx, ebx
sub ecx, edx
add ecx, 0xfffffffc
mov edx, dword [ebx]
xor edx, dword [edi]
jne 0x1005ace5
add ebx, 4
add edi, 4
add ecx, 4
cmp ebx, dword [ebp - 0x40]
jb 0x1005accc
jmp 0x1005c1a8
bsf ebx, edx
shr ebx, 3
add ebx, ecx
mov edx, dword [ebp - 0x28]
jmp 0x1005ab28
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 0x1005ad74
mov ecx, eax
mov eax, dword [eax]
xor eax, dword [esi]
je 0x1005ad69
bsf edx, eax
shr edx, 3
mov esi, ecx
add ebx, edx
add esi, edx
mov dword [ebp - 0x28], esi
jmp 0x1005ab30
mov dword [ebp - 0x28], ecx
lea ebx, [ecx + 8]
lea ecx, [edi + 8]
mov dword [ebp - 0x1c], esi
cmp ebx, edx
jae 0x1005c277
mov esi, ebx
sub esi, dword [ebp - 0x28]
add esi, 0xfffffffc
mov eax, dword [ebx]
xor eax, dword [ecx]
jne 0x1005ad56
add ebx, 4
add ecx, 4
add esi, 4
cmp ebx, edx
jb 0x1005ad3e
jmp 0x1005c277
bsf ebx, eax
shr ebx, 3
add ebx, esi
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x1c]
jmp 0x1005aca1
mov eax, ecx
lea edx, [ecx + 4]
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x1c], eax
cmp edx, dword [ebp - 0x40]
jae 0x1005c384
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 0x1005adb0
add edx, 4
add ecx, 4
add esi, 4
cmp edx, dword [ebp - 0x40]
jb 0x1005ad97
jmp 0x1005c384
bsf edx, eax
shr edx, 3
add edx, esi
mov esi, dword [ebp - 0x1c]
jmp 0x1005ad16
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 0x1005a8d0
jmp 0x1005a532
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 0x1005ae8f
lea ecx, [edx + 0xffff]
cmp ecx, eax
jb 0x1005ae8f
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + edx]
mov eax, dword [ebp - 0x14]
cmp ecx, dword [eax]
je 0x1005aeaf
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 0x1005ae50
jmp 0x1005c1a0
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 0x1005af38
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x44]
jbe 0x1005af38
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 0x1005aed8
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 0x1005a5da
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 0x1005b015
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 0x1005b01c
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 0x1005b01f
mov bl, byte [ebp - 0x48]
mov byte [eax], bl
jmp 0x1005b022
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 0x1005b027
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 0x1005c41d
mov edx, dword [ebx + 4]
xor edx, dword [esi + 4]
je 0x1005b170
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 0x1005a5da
mov edx, esi
lea edx, [esi + 2]
mov al, byte [ecx]
cmp ebx, 0xf
jb 0x1005b108
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [edx], 0xffffffff
cmp eax, 0x3fc
jb 0x1005b0f2
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 0x1005b10c
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 0x1005a64f
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 0x1005b1a9
lea ecx, [esi + 0xffff]
cmp ecx, eax
jb 0x1005b1a9
add esi, dword [ebp - 0x2c]
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x1005b1a9
mov ecx, dword [ebp - 0x34]
lea edx, [ecx + 1]
mov byte [ecx], 0
jmp 0x1005b041
add ebx, 8
add esi, 8
cmp ebx, dword [ebp - 0x20]
jae 0x1005b1cb
mov edx, ebx
sub edx, dword [ebp - 0x44]
add edx, 0xfffffffc
mov edi, dword [ebx]
xor edi, dword [esi]
jne 0x1005b199
add ebx, 4
add esi, 4
add edx, 4
cmp ebx, dword [ebp - 0x20]
jb 0x1005b183
jmp 0x1005b1cb
bsf ebx, edi
shr ebx, 3
add ebx, edx
mov edi, dword [ebp + 8]
jmp 0x1005b06c
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 0x1005ae43
jmp 0x1005a64f
mov edx, dword [ebp - 0x68]
dec edx
cmp ebx, edx
jb 0x1005c1f9
cmp ebx, dword [ebp - 0x68]
mov edi, dword [ebp + 8]
jb 0x1005c210
sub ebx, eax
jmp 0x1005b06c
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 0x1005b298
mov eax, dword [ebp - 0x2c]
mov eax, dword [ecx + eax]
mov ebx, dword [ebp - 0x14]
cmp eax, dword [ebx]
je 0x1005b2b8
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 0x1005b259
jmp 0x1005c1a0
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 0x1005b34f
cmp eax, dword [ebp - 0x44]
jbe 0x1005b34f
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 0x1005b2eb
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 0x1005a5da
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 0x1005b422
mov ebx, dword [ebp - 0x60]
add ebx, dword [ebp - 0x18]
mov byte [eax], 0xf0
cmp ebx, 0xff
jl 0x1005b41d
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 0x1005b427
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 0x1005b42c
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 0x1005c427
mov edx, dword [ebx + 4]
xor edx, dword [esi + 4]
je 0x1005b56f
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 0x1005a5da
mov edx, esi
lea edx, [esi + 2]
mov al, byte [ecx]
cmp ebx, 0xf
jb 0x1005b50d
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [edx], 0xffffffff
cmp eax, 0x3fc
jb 0x1005b4f7
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 0x1005b511
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 0x1005a64f
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 0x1005b5a8
add esi, edx
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x1005b5a8
mov ecx, dword [ebp - 0x34]
lea edx, [ecx + 1]
mov byte [ecx], 0
jmp 0x1005b446
add ebx, 8
add esi, 8
cmp ebx, dword [ebp - 0x20]
jae 0x1005b5c9
mov edx, ebx
sub edx, dword [ebp - 0x44]
add edx, 0xfffffffc
mov edi, dword [ebx]
xor edi, dword [esi]
jne 0x1005b598
add ebx, 4
add esi, 4
add edx, 4
cmp ebx, dword [ebp - 0x20]
jb 0x1005b582
jmp 0x1005b5c9
bsf ebx, edi
shr ebx, 3
add ebx, edx
mov edi, dword [ebp + 8]
jmp 0x1005b471
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 0x1005b247
jmp 0x1005a64f
mov edx, dword [ebp - 0x64]
dec edx
cmp ebx, edx
jb 0x1005c21f
cmp ebx, dword [ebp - 0x64]
mov edi, dword [ebp + 8]
jb 0x1005c236
sub ebx, eax
jmp 0x1005b471
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 0x1005a601
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 0x1005a2ff
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 0x1005b6f2
lea edx, [ecx + 0xffff]
cmp edx, dword [ebp - 0x20]
jb 0x1005b6f2
mov edx, dword [ebx + ecx]
mov eax, dword [ebp - 0x30]
cmp edx, dword [eax]
je 0x1005b71b
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 0x1005b6aa
jmp 0x1005c303
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 0x1005b7c0
cmp dword [ebp - 0x2c], edx
jbe 0x1005b7c0
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 0x1005b760
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 0x1005a5ea
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 0x1005b89c
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 0x1005b8a6
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 0x1005b8ab
mov bl, byte [ebp - 0x68]
mov esi, dword [ebp - 0x48]
mov byte [esi], bl
jmp 0x1005b8ae
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 0x1005b8b3
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 0x1005ba36
lea eax, [esi + 4]
cmp dword [ebp - 0x40], eax
jbe 0x1005c47c
mov ecx, dword [esi + 4]
xor ecx, dword [edi + 4]
je 0x1005ba81
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 0x1005a5ea
mov edx, ecx
lea esi, [ecx + 2]
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx]
cmp ebx, 0xf
jb 0x1005b9a6
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [esi], 0xffffffff
cmp eax, 0x3fc
jb 0x1005b98d
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 0x1005b9ad
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 0x1005a417
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 0x1005bb7f
lea ecx, [eax + 0xffff]
cmp ecx, dword [ebp - 0x20]
jb 0x1005bb7f
add edi, eax
mov ecx, dword [edi]
cmp ecx, dword [esi]
jne 0x1005bb7f
mov edx, dword [ebp - 0x48]
lea ecx, [edx + 1]
mov byte [edx], 0
sub dword [ebp - 0x20], eax
mov dword [ebp - 0x14], edx
jmp 0x1005b8cd
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 0x1005c490
mov eax, dword [ecx + 4]
xor eax, dword [edi + 4]
je 0x1005baec
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 0x1005bac3
mov dword [ebp - 0x24], eax
jmp 0x1005b908
lea ebx, [esi + 8]
add edi, 8
cmp ebx, dword [ebp - 0x40]
mov dword [ebp - 0x24], esi
jae 0x1005c29f
mov ecx, ebx
sub ecx, esi
add ecx, 0xfffffffc
mov edx, dword [ebx]
xor edx, dword [edi]
jne 0x1005bab3
add ebx, 4
add edi, 4
add ecx, 4
cmp ebx, dword [ebp - 0x40]
jb 0x1005ba9a
jmp 0x1005c29f
bsf ebx, edx
shr ebx, 3
add ebx, ecx
mov esi, dword [ebp - 0x24]
jmp 0x1005b900
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 0x1005bb39
mov eax, dword [esi]
mov ecx, dword [ebp + 0xc]
xor eax, dword [ecx]
je 0x1005bb30
bsf edx, eax
shr edx, 3
add ebx, edx
add esi, edx
jmp 0x1005b905
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], ecx
lea ebx, [ecx + 8]
lea ecx, [edi + 8]
cmp ebx, edx
jae 0x1005c30b
mov esi, ebx
sub esi, dword [ebp - 0x24]
add esi, 0xfffffffc
mov eax, dword [ebx]
xor eax, dword [ecx]
jne 0x1005bb20
add ebx, 4
add ecx, 4
add esi, 4
cmp ebx, edx
jb 0x1005bb08
jmp 0x1005c30b
bsf ebx, eax
shr ebx, 3
add ebx, esi
mov edx, dword [ebp - 0x24]
jmp 0x1005ba6c
lea edx, [esi + 4]
mov ecx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x40]
jae 0x1005c3d4
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 0x1005bb6f
add edx, 4
add ecx, 4
add esi, 4
cmp edx, dword [ebp - 0x40]
jb 0x1005bb56
jmp 0x1005c3d4
bsf edx, eax
shr edx, 3
add edx, esi
mov esi, dword [ebp - 0x20]
jmp 0x1005bae3
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 0x1005b69e
jmp 0x1005a417
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 0x1005bc6f
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 0x1005bc96
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 0x1005bc2b
jmp 0x1005a767
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 0x1005bd29
cmp dword [ebp - 0x28], edx
jbe 0x1005bd29
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 0x1005bcd2
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 0x1005a5ea
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 0x1005be07
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 0x1005be11
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 0x1005be14
mov dl, byte [ebp - 0x64]
mov byte [ecx], dl
mov edx, dword [ebp - 0x6c]
jmp 0x1005be20
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 0x1005be25
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 0x1005bfa7
lea edi, [esi + 4]
cmp dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x20]
jbe 0x1005c486
mov ecx, dword [esi + 4]
xor ecx, dword [eax + 4]
je 0x1005bfee
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 0x1005a5ea
mov edx, ecx
add ecx, 2
mov al, byte [esi]
cmp ebx, 0xf
jb 0x1005bf17
add al, 0xf
mov byte [esi], al
lea eax, [ebx - 0xf]
mov dword [ecx], 0xffffffff
cmp eax, 0x3fc
mov esi, ecx
jb 0x1005befe
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 0x1005bf1e
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 0x1005a767
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 0x1005c0f4
add esi, eax
mov ecx, dword [esi]
mov edi, dword [ebp - 0x10]
cmp ecx, dword [edi]
jne 0x1005c0f4
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 0x1005be3f
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 0x1005c49e
mov ecx, dword [esi + 4]
xor ecx, dword [ebx + 4]
je 0x1005c05a
bsf ebx, ecx
shr ebx, 3
lea ecx, [ebx + esi]
add ecx, 4
cmp ecx, edi
je 0x1005c030
mov dword [ebp - 0x10], ecx
jmp 0x1005be77
lea ebx, [esi + 8]
add eax, 8
cmp ebx, dword [ebp - 0x30]
mov dword [ebp - 0x10], esi
jae 0x1005c2ce
mov ecx, ebx
sub ecx, esi
add ecx, 0xfffffffc
mov edx, dword [ebx]
xor edx, dword [eax]
jne 0x1005c020
add ebx, 4
add eax, 4
add ecx, 4
cmp ebx, dword [ebp - 0x30]
jb 0x1005c007
jmp 0x1005c2ce
bsf ebx, edx
shr ebx, 3
add ebx, ecx
mov esi, dword [ebp - 0x10]
jmp 0x1005be6f
mov dword [ebp - 0x10], esi
mov edx, edi
mov esi, dword [ebp + 0xc]
mov ecx, esi
cmp dword [ebp - 0x30], edi
jbe 0x1005c0a9
mov ecx, dword [edi]
xor ecx, dword [esi]
je 0x1005c0a3
bsf edx, ecx
shr edx, 3
mov esi, dword [ebp - 0x1c]
add ebx, edx
add edi, edx
mov dword [ebp - 0x10], edi
jmp 0x1005be7a
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 0x1005c32e
mov esi, ebx
sub esi, dword [ebp - 0x10]
add esi, 0xfffffffc
mov edi, dword [ebx]
xor edi, dword [ecx]
jne 0x1005c090
add ebx, 4
add ecx, 4
add esi, 4
cmp ebx, edx
jb 0x1005c078
jmp 0x1005c32e
bsf ebx, edi
shr ebx, 3
add ebx, esi
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0x28]
jmp 0x1005bfdc
lea edx, [edi + 4]
mov ecx, dword [ebp - 0x78]
mov eax, edi
cmp edx, dword [ebp - 0x30]
jae 0x1005c403
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 0x1005c0e2
add edx, 4
add ecx, 4
add esi, 4
cmp edx, dword [ebp - 0x30]
jb 0x1005c0c9
jmp 0x1005c403
bsf edx, edi
shr edx, 3
add edx, esi
mov esi, dword [ebp - 0x1c]
mov edi, eax
jmp 0x1005c04e
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 0x1005bc19
jmp 0x1005a767
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 0x1005a2ff
mov ecx, dword [ebp - 0x50]
dec ecx
cmp ebx, ecx
jae 0x1005c143
mov edx, ebx
movzx ecx, word [esi]
cmp cx, word [ebx]
jne 0x1005c143
add ebx, 2
add esi, 2
cmp ebx, dword [ebp - 0x50]
jae 0x1005c152
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 0x10059fb5
mov eax, ecx
shl al, 4
mov byte [esi], al
lea eax, [esi + 1]
mov edx, dword [ebp - 0x24]
jmp 0x1005a803
mov eax, ecx
shl al, 4
mov byte [esi], al
lea eax, [esi + 1]
mov edx, dword [ebp - 0x10]
jmp 0x1005a803
mov ecx, dword [ebp - 0x18]
dec ecx
cmp eax, ecx
jae 0x1005c1d7
movzx ecx, word [edi]
cmp cx, word [eax]
mov ecx, eax
mov ebx, dword [ebp - 0x1c]
jne 0x1005c1dc
add ecx, 2
add edi, 2
jmp 0x1005c1dc
mov ebx, dword [ebp - 0x44]
jmp 0x1005a64f
mov ecx, dword [ebp - 0x58]
dec ecx
cmp ebx, ecx
jae 0x1005c1be
movzx ecx, word [edi]
cmp cx, word [ebx]
jne 0x1005c1be
add ebx, 2
add edi, 2
cmp ebx, dword [ebp - 0x58]
jae 0x1005c1cd
mov cl, byte [edi]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
mov edx, dword [ebp - 0x28]
sub ebx, eax
jmp 0x1005ab28
mov ecx, eax
mov ebx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x18]
jae 0x1005c1ef
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 0x1005a1ef
movzx edx, word [esi]
cmp dx, word [ebx]
jne 0x1005b1d7
add ebx, 2
add esi, 2
jmp 0x1005b1d7
mov dl, byte [esi]
lea esi, [ebx + 1]
cmp dl, byte [ebx]
cmove ebx, esi
jmp 0x1005b1e3
movzx edx, word [esi]
cmp dx, word [ebx]
jne 0x1005b5d5
add ebx, 2
add esi, 2
jmp 0x1005b5d5
mov dl, byte [esi]
lea esi, [ebx + 1]
cmp dl, byte [ebx]
cmove ebx, esi
jmp 0x1005b5e1
mov ecx, dword [ebp - 0x50]
dec ecx
cmp edx, ecx
jae 0x1005c25b
movzx ecx, word [edi]
cmp cx, word [edx]
jne 0x1005c25b
add edx, 2
add edi, 2
cmp edx, dword [ebp - 0x50]
jae 0x1005c26a
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 0x1005a1a1
mov esi, dword [ebp - 0x1c]
lea eax, [esi - 1]
cmp ebx, eax
jae 0x1005c35f
movzx eax, word [ecx]
cmp ax, word [ebx]
mov edx, dword [ebp - 0x28]
jne 0x1005c362
add ebx, 2
add ecx, 2
jmp 0x1005c362
mov ecx, dword [ebp - 0x38]
dec ecx
cmp ebx, ecx
jae 0x1005c2b5
movzx ecx, word [edi]
cmp cx, word [ebx]
jne 0x1005c2b5
add ebx, 2
add edi, 2
cmp ebx, dword [ebp - 0x38]
jae 0x1005c2c4
mov cl, byte [edi]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
mov esi, dword [ebp - 0x24]
sub ebx, eax
jmp 0x1005b900
mov edx, eax
mov ecx, dword [ebp - 0x50]
dec ecx
cmp ebx, ecx
jae 0x1005c2ea
movzx ecx, word [edx]
cmp cx, word [ebx]
jne 0x1005c2ea
mov eax, edx
add ebx, 2
add eax, 2
mov edx, eax
cmp ebx, dword [ebp - 0x50]
jae 0x1005c2f9
mov cl, byte [edx]
lea edx, [ebx + 1]
cmp cl, byte [ebx]
cmove ebx, edx
mov esi, dword [ebp - 0x10]
sub ebx, edi
jmp 0x1005be6f
mov esi, dword [ebp - 0x24]
jmp 0x1005a417
mov eax, dword [ebp - 0x20]
dec eax
cmp ebx, eax
jae 0x1005c3aa
movzx eax, word [ecx]
cmp ax, word [ebx]
mov edx, dword [ebp - 0x24]
jne 0x1005c3ad
add ebx, 2
add ecx, 2
jmp 0x1005c3ad
mov edi, dword [ebp - 0x28]
lea edx, [edi - 1]
cmp ebx, edx
jae 0x1005c346
movzx edx, word [ecx]
cmp dx, word [ebx]
jne 0x1005c346
add ebx, 2
add ecx, 2
cmp ebx, edi
jae 0x1005c354
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 0x1005bfdc
mov edx, dword [ebp - 0x28]
cmp ebx, esi
jae 0x1005c370
mov al, byte [ecx]
lea ecx, [ebx + 1]
cmp al, byte [ebx]
cmove ebx, ecx
mov eax, dword [ebp - 0x14]
sub ebx, eax
jmp 0x1005aca1
add esi, 4
mov ebx, eax
jmp 0x1005a13e
mov eax, dword [ebp - 0x58]
dec eax
cmp edx, eax
jae 0x1005c431
movzx eax, word [ecx]
cmp ax, word [edx]
mov esi, dword [ebp - 0x1c]
jne 0x1005c434
add edx, 2
add ecx, 2
jmp 0x1005c434
mov edx, dword [ebp - 0x24]
cmp ebx, dword [ebp - 0x20]
jae 0x1005c3bc
mov al, byte [ecx]
lea ecx, [ebx + 1]
cmp al, byte [ebx]
cmove ebx, ecx
sub ebx, dword [ebp - 0x1c]
jmp 0x1005ba6c
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], eax
lea edi, [esi + 4]
mov eax, ebx
jmp 0x1005a1b9
mov eax, dword [ebp - 0x38]
dec eax
cmp edx, eax
jae 0x1005c3ea
movzx eax, word [ecx]
cmp ax, word [edx]
jne 0x1005c3ea
add edx, 2
add ecx, 2
cmp edx, dword [ebp - 0x38]
jae 0x1005c3f9
mov al, byte [ecx]
lea ecx, [edx + 1]
cmp al, byte [edx]
cmove edx, ecx
mov esi, dword [ebp - 0x20]
sub edx, esi
jmp 0x1005bae3
mov esi, dword [ebp - 0x50]
dec esi
cmp edx, esi
jae 0x1005c454
movzx esi, word [ecx]
cmp si, word [edx]
mov edi, eax
jne 0x1005c456
add edx, 2
add ecx, 2
jmp 0x1005c456
add esi, 4
mov ebx, eax
jmp 0x1005b176
add esi, 4
mov ebx, eax
jmp 0x1005b575
mov esi, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x58]
jae 0x1005c443
mov al, byte [ecx]
lea ecx, [edx + 1]
cmp al, byte [edx]
cmove edx, ecx
sub edx, esi
jmp 0x1005ad16
add edi, 4
mov ebx, eax
jmp 0x1005acb9
mov edi, eax
cmp edx, dword [ebp - 0x50]
jae 0x1005c465
mov cl, byte [ecx]
lea esi, [edx + 1]
cmp cl, byte [edx]
cmove edx, esi
mov esi, dword [ebp - 0x1c]
sub edx, edi
jmp 0x1005c04e
mov dword [ebp - 0x28], ecx
lea ecx, [edi + 4]
mov ebx, eax
jmp 0x1005ad2b
add edi, 4
mov ebx, eax
jmp 0x1005ba87
add eax, 4
mov ebx, edi
jmp 0x1005bff4
mov dword [ebp - 0x24], ecx
lea ecx, [edi + 4]
mov dword [ebp - 0x1c], ebx
jmp 0x1005baf8
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x10], esi
lea ecx, [ebx + 4]
mov ebx, dword [ebp - 0x14]
jmp 0x1005c068