Function at 0x406530
Capabilities:
Encode data using xor
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
push 0x2000000
call fcn.0040a2f2
push 0x2000000
mov esi, eax
push 0
push esi
mov dword [ebp - 4], esi
call fcn.00545a70
mov ecx, dword [0x5c9ce8]
mov edx, esi
add esp, 0x10
mov dword [edx], ecx
mov ecx, dword [0x5c9cec]
mov dword [edx + 4], ecx
mov eax, dword [0x5c9cf0]
mov dword [edx + 8], eax
mov eax, dword [0x5c9cf4]
mov dword [edx + 0xc], eax
mov eax, dword [0x5c9cf8]
mov dword [edx + 0x10], eax
mov eax, dword [0x5c9cfc]
mov dword [edx + 0x14], eax
mov eax, dword [0x5c9d00]
mov dword [edx + 0x18], eax
mov eax, dword [0x5c9d04]
mov dword [edx + 0x1c], eax
mov eax, dword [0x5c9d08]
mov dword [edx + 0x20], eax
mov eax, dword [0x5c9d0c]
mov dword [edx + 0x24], eax
mov eax, dword [0x5c9d10]
mov dword [edx + 0x28], eax
mov eax, dword [0x5c9d14]
mov dword [edx + 0x2c], eax
mov ax, word [0x5c9d18]
mov word [edx + 0x30], ax
movups xmm0, xmmword [0x5c9d1a]
mov eax, dword [0x5c9ce8]
movups xmmword [edx + 0x32], xmm0
movups xmm0, xmmword [0x5c9d2a]
movups xmmword [edx + 0x42], xmm0
movups xmm0, xmmword [0x5c9d3a]
movups xmmword [edx + 0x52], xmm0
cmp eax, 6
jle 0x406617
movups xmm0, xmmword [0x5c9d4a]
mov ebx, 0x4c
movups xmmword [edx + 0x62], xmm0
movq xmm0, qword [0x5c9d5a]
movq qword [edx + 0x72], xmm0
mov eax, dword [0x5c9d62]
mov dword [edx + 0x7a], eax
jmp 0x406650
cmp eax, 5
jle 0x406636
movups xmm0, xmmword [0x5c9d4a]
mov ebx, 0x44
movups xmmword [edx + 0x62], xmm0
mov eax, dword [0x5c9d5a]
mov dword [edx + 0x72], eax
jmp 0x406650
movq xmm0, qword [0x5c9d4a]
mov ebx, 0x3c
movq qword [edx + 0x62], xmm0
mov eax, dword [0x5c9d52]
mov dword [edx + 0x6a], eax
xor ecx, ecx
add ebx, 0x32
mov dword [ebp - 0x1c], ecx
cmp dword [0x5c9d42], ecx
jle 0x4068f5
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [0x5c9d6a]
mov edi, dword [0x5c9d66]
sub eax, edi
sar eax, 2
cmp eax, ecx
jbe 0x407537
mov edi, dword [edi + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov eax, dword [edi]
mov dword [edx + ebx], eax
mov eax, dword [edi + 4]
mov dword [edx + ebx + 4], eax
add ebx, 8
cmp dword [edi], ecx
jle 0x4067a4
mov esi, dword [ebp - 4]
nop word [eax + eax]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
sub eax, edx
sar eax, 2
cmp eax, ecx
jbe 0x407537
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0xc], eax
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x38e38e39
imul ecx
xor ecx, ecx
sar edx, 1
mov eax, edx
mov dword [ebp - 0x10], ecx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
mov dword [esi + ebx], eax
mov eax, dword [edx + 4]
mov dword [esi + ebx + 4], eax
mov eax, dword [edx + 8]
mov dword [esi + ebx + 8], eax
mov eax, 0x38e38e39
mov ecx, dword [edx + 0x10]
add ebx, 0xc
sub ecx, dword [edx + 0xc]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x406793
lea eax, [esi + ebx]
mov dword [ebp - 8], 0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
mov eax, 0x38e38e39
sub ecx, edx
mov dword [ebp - 0x20], edx
imul ecx
mov ecx, dword [ebp - 0x10]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x407537
mov edx, dword [ebp - 8]
inc ecx
mov eax, dword [ebp - 0x20]
add ebx, 9
add dword [ebp - 8], 9
mov dword [ebp - 0x10], ecx
movq xmm0, qword [edx + eax]
mov al, byte [edx + eax + 8]
mov edx, dword [ebp - 0x14]
movq qword [edx], xmm0
mov byte [edx + 8], al
add edx, 9
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], edx
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x10], eax
jb 0x406722
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, dword [edi]
jl 0x4066b0
mov edx, esi
xor ecx, ecx
mov dword [ebp - 0x14], ecx
cmp dword [edi], ecx
jle 0x40680b
nop dword [eax]
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x14]
sub eax, esi
sar eax, 2
cmp eax, ecx
jbe 0x407537
mov esi, dword [esi + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x18], esi
mov eax, dword [esi]
mov dword [edx + ebx], eax
add ebx, 4
cmp dword [edi], ecx
jle 0x406800
mov eax, dword [ebp - 0x18]
mov esi, dword [esi + 4]
mov eax, dword [eax + 8]
sub eax, esi
sar eax, 2
cmp eax, ecx
jbe 0x407537
mov eax, dword [esi + ecx*4]
inc ecx
mov esi, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [edx + ebx], eax
add ebx, 4
cmp ecx, dword [edi]
jl 0x4067d7
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [edi]
jl 0x4067b0
xor ecx, ecx
mov dword [ebp - 0xc], ecx
cmp dword [edi + 4], ecx
jle 0x4068e2
nop dword [eax]
mov eax, dword [edi + 0x24]
mov esi, dword [edi + 0x20]
sub eax, esi
sar eax, 2
cmp eax, ecx
jbe 0x407537
mov esi, dword [esi + ecx*4]
mov eax, 0x38e38e39
mov dword [ebp - 0x14], 0
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
mov dword [esi], eax
mov dword [edx + ebx], eax
mov eax, dword [esi + 4]
mov dword [edx + ebx + 4], eax
mov eax, dword [esi + 8]
mov dword [edx + ebx + 8], eax
add ebx, 0xc
cmp dword [esi], 0
jle 0x4068d2
lea eax, [edx + ebx]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x18], eax
nop
mov ecx, dword [esi + 0x10]
mov eax, 0x38e38e39
sub ecx, dword [esi + 0xc]
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x407537
mov eax, dword [esi + 0xc]
inc ecx
mov edx, dword [ebp - 0x10]
add ebx, 9
add dword [ebp - 0x10], 9
mov dword [ebp - 0x14], ecx
movq xmm0, qword [edx + eax]
mov al, byte [edx + eax + 8]
mov edx, dword [ebp - 0x18]
movq qword [edx], xmm0
mov byte [edx + 8], al
add edx, 9
mov dword [ebp - 0x18], edx
cmp ecx, dword [esi]
jl 0x406880
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, dword [edi + 4]
jl 0x406820
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [0x5c9d42]
jl 0x406670
mov eax, dword [0x5c9d76]
xor ecx, ecx
sub eax, dword [0x5c9d72]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9d76]
mov esi, dword [0x5c9d72]
sub eax, esi
sar eax, 2
test eax, eax
je 0x40696f
cmp eax, ecx
jbe 0x407537
mov eax, dword [esi + ecx*4]
cmp dword [0x5c9ce8], 9
movups xmm0, xmmword [eax]
movups xmmword [edx + ebx], xmm0
jle 0x40694c
movq xmm0, qword [eax + 0x10]
mov eax, 0x18
movq qword [edx + ebx + 0x10], xmm0
jmp 0x406958
mov eax, dword [eax + 0x10]
mov dword [edx + ebx + 0x10], eax
mov eax, 0x14
mov esi, dword [0x5c9d72]
add ebx, eax
mov eax, dword [0x5c9d76]
inc ecx
sub eax, esi
sar eax, 2
cmp eax, ecx
ja 0x406927
mov eax, dword [0x5c9d82]
xor ecx, ecx
sub eax, dword [0x5c9d7e]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9d82]
mov esi, dword [0x5c9d7e]
sub eax, esi
sar eax, 2
test eax, eax
je 0x4069c8
lea edi, [edx + ebx]
cmp eax, ecx
jbe 0x407537
mov eax, dword [esi + ecx*4]
add ebx, 0x10
inc ecx
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
mov eax, dword [0x5c9d82]
add edi, 0x10
mov esi, dword [0x5c9d7e]
sub eax, esi
sar eax, 2
cmp eax, ecx
ja 0x4069a4
mov eax, dword [0x5c9d8e]
xor ecx, ecx
sub eax, dword [0x5c9d8a]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9d8e]
mov edi, dword [0x5c9d8a]
sub eax, edi
sar eax, 2
test eax, eax
je 0x406a29
lea esi, [edx + ebx]
cmp eax, ecx
jbe 0x407537
mov eax, dword [edi + ecx*4]
add ebx, 0xc
inc ecx
movq xmm0, qword [eax]
movq qword [esi], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add esi, 0xc
mov eax, dword [0x5c9d8e]
mov edi, dword [0x5c9d8a]
sub eax, edi
sar eax, 2
cmp eax, ecx
ja 0x4069fd
mov eax, dword [0x5c9d9a]
xor esi, esi
sub eax, dword [0x5c9d96]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9d9a]
mov ecx, dword [0x5c9d96]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x406ab9
cmp eax, esi
jbe 0x407537
mov ecx, dword [ecx + esi*4]
cmp dword [0x5c9ce8], 4
movups xmm0, xmmword [ecx]
movups xmmword [edx + ebx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + ebx + 0x10], xmm0
movq xmm0, qword [ecx + 0x20]
movq qword [edx + ebx + 0x20], xmm0
jge 0x406a94
mov al, byte [ecx + 0x28]
mov byte [edx + ebx + 0x28], al
mov eax, 0x29
mov byte [ecx + 0x29], 0
jmp 0x406aa2
mov ax, word [ecx + 0x28]
mov word [edx + ebx + 0x28], ax
mov eax, 0x2a
mov ecx, dword [0x5c9d96]
add ebx, eax
mov eax, dword [0x5c9d9a]
inc esi
sub eax, ecx
sar eax, 2
cmp eax, esi
ja 0x406a5b
mov eax, dword [0x5c9da6]
xor ecx, ecx
sub eax, dword [0x5c9da2]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9da6]
mov esi, dword [0x5c9da2]
sub eax, esi
sar eax, 2
mov dword [ebp - 0x1c], ecx
test eax, eax
je 0x406be4
cmp eax, ecx
jbe 0x407537
mov esi, dword [esi + ecx*4]
mov ecx, 0x20
mov dword [ebp - 0x20], esi
mov eax, dword [esi + 0x88]
sub eax, dword [esi + 0x84]
sar eax, 2
mov dword [edx + ebx], eax
mov eax, dword [esi]
add esi, 4
mov dword [edx + ebx + 4], eax
add ebx, 8
lea edi, [edx + ebx]
sub ebx, 0xffffff80
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x20]
xor esi, esi
mov eax, dword [ecx + 0x88]
sub eax, dword [ecx + 0x84]
sar eax, 2
test eax, eax
je 0x406bb2
nop dword [eax + eax]
mov eax, dword [ecx + 0x88]
mov edi, dword [ecx + 0x84]
sub eax, edi
sar eax, 2
cmp eax, esi
jbe 0x407537
mov eax, dword [edi + esi*4]
cmp dword [0x5c9ce8], 4
movups xmm0, xmmword [eax]
movups xmmword [edx + ebx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edx + ebx + 0x10], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [edx + ebx + 0x20], xmm0
jge 0x406b8e
mov al, byte [eax + 0x28]
mov byte [edx + ebx + 0x28], al
mov eax, 0x29
jmp 0x406b9c
mov ax, word [eax + 0x28]
mov word [edx + ebx + 0x28], ax
mov eax, 0x2a
add ebx, eax
inc esi
mov eax, dword [ecx + 0x88]
sub eax, dword [ecx + 0x84]
sar eax, 2
cmp esi, eax
jb 0x406b40
cmp dword [0x5c9ce8], 0x11
jl 0x406bc5
mov al, byte [ecx + 0x90]
mov byte [edx + ebx], al
inc ebx
mov eax, dword [0x5c9da6]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [0x5c9da2]
inc ecx
sub eax, esi
mov dword [ebp - 0x1c], ecx
sar eax, 2
cmp eax, ecx
ja 0x406af2
mov eax, dword [0x5c9db2]
xor esi, esi
sub eax, dword [0x5c9dae]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9db2]
mov ecx, dword [0x5c9dae]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x18], esi
test eax, eax
je 0x406d7f
cmp eax, esi
jbe 0x407537
mov ecx, dword [ecx + esi*4]
xor esi, esi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], esi
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
mov dword [edx + ebx], eax
movq xmm0, qword [ecx]
movq qword [edx + ebx + 4], xmm0
mov eax, dword [ecx + 8]
mov dword [edx + ebx + 0xc], eax
add ebx, 0x10
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
test eax, eax
je 0x406d60
nop dword [eax]
mov eax, dword [ecx + 0x10]
mov edi, dword [ecx + 0xc]
sub eax, edi
sar eax, 2
cmp eax, esi
jbe 0x407537
mov esi, dword [edi + esi*4]
mov ecx, 0x20
mov dword [ebp - 0x20], esi
mov eax, dword [esi + 0x88]
sub eax, dword [esi + 0x84]
sar eax, 2
mov dword [edx + ebx], eax
mov eax, dword [esi]
add esi, 4
mov dword [edx + ebx + 4], eax
add ebx, 8
lea edi, [edx + ebx]
sub ebx, 0xffffff80
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x20]
xor esi, esi
mov eax, dword [ecx + 0x88]
sub eax, dword [ecx + 0x84]
sar eax, 2
test eax, eax
je 0x406d32
nop dword [eax]
mov eax, dword [ecx + 0x88]
mov edi, dword [ecx + 0x84]
sub eax, edi
sar eax, 2
cmp eax, esi
jbe 0x407537
mov eax, dword [edi + esi*4]
cmp dword [0x5c9ce8], 4
movups xmm0, xmmword [eax]
movups xmmword [edx + ebx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edx + ebx + 0x10], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [edx + ebx + 0x20], xmm0
jge 0x406d0e
mov al, byte [eax + 0x28]
mov byte [edx + ebx + 0x28], al
mov eax, 0x29
jmp 0x406d1c
mov ax, word [eax + 0x28]
mov word [edx + ebx + 0x28], ax
mov eax, 0x2a
add ebx, eax
inc esi
mov eax, dword [ecx + 0x88]
sub eax, dword [ecx + 0x84]
sar eax, 2
cmp esi, eax
jb 0x406cc0
cmp dword [0x5c9ce8], 0x11
jl 0x406d45
mov al, byte [ecx + 0x90]
mov byte [edx + ebx], al
inc ebx
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
cmp esi, eax
jb 0x406c60
mov eax, dword [0x5c9db2]
mov esi, dword [ebp - 0x18]
mov ecx, dword [0x5c9dae]
inc esi
sub eax, ecx
mov dword [ebp - 0x18], esi
sar eax, 2
cmp eax, esi
ja 0x406c1d
mov eax, dword [0x5c9dbe]
xor esi, esi
sub eax, dword [0x5c9dba]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9dbe]
mov ecx, dword [0x5c9dba]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x18], esi
test eax, eax
je 0x406f0f
cmp eax, esi
jbe 0x407537
mov ecx, dword [ecx + esi*4]
xor esi, esi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], esi
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
mov dword [edx + ebx], eax
movq xmm0, qword [ecx]
movq qword [edx + ebx + 4], xmm0
mov eax, dword [ecx + 8]
mov dword [edx + ebx + 0xc], eax
add ebx, 0x10
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
test eax, eax
je 0x406ef0
mov eax, dword [ecx + 0x10]
mov edi, dword [ecx + 0xc]
sub eax, edi
sar eax, 2
cmp eax, esi
jbe 0x407537
mov esi, dword [edi + esi*4]
mov ecx, 0x20
mov dword [ebp - 0x20], esi
mov eax, dword [esi + 0x88]
sub eax, dword [esi + 0x84]
sar eax, 2
mov dword [edx + ebx], eax
mov eax, dword [esi]
add esi, 4
mov dword [edx + ebx + 4], eax
add ebx, 8
lea edi, [edx + ebx]
sub ebx, 0xffffff80
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x20]
xor esi, esi
mov eax, dword [ecx + 0x88]
sub eax, dword [ecx + 0x84]
sar eax, 2
test eax, eax
je 0x406ec2
mov eax, dword [ecx + 0x88]
mov edi, dword [ecx + 0x84]
sub eax, edi
sar eax, 2
cmp eax, esi
jbe 0x407537
mov eax, dword [edi + esi*4]
cmp dword [0x5c9ce8], 4
movups xmm0, xmmword [eax]
movups xmmword [edx + ebx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edx + ebx + 0x10], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [edx + ebx + 0x20], xmm0
jge 0x406e9e
mov al, byte [eax + 0x28]
mov byte [edx + ebx + 0x28], al
mov eax, 0x29
jmp 0x406eac
mov ax, word [eax + 0x28]
mov word [edx + ebx + 0x28], ax
mov eax, 0x2a
add ebx, eax
inc esi
mov eax, dword [ecx + 0x88]
sub eax, dword [ecx + 0x84]
sar eax, 2
cmp esi, eax
jb 0x406e50
cmp dword [0x5c9ce8], 0x11
jl 0x406ed5
mov al, byte [ecx + 0x90]
mov byte [edx + ebx], al
inc ebx
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
cmp esi, eax
jb 0x406df4
mov eax, dword [0x5c9dbe]
mov esi, dword [ebp - 0x18]
mov ecx, dword [0x5c9dba]
inc esi
sub eax, ecx
mov dword [ebp - 0x18], esi
sar eax, 2
cmp eax, esi
ja 0x406db8
cmp dword [0x5c9ce8], 1
jle 0x406f79
mov eax, dword [0x5c9e2c]
xor ecx, ecx
sub eax, dword [0x5c9e28]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9e2c]
mov edi, dword [0x5c9e28]
sub eax, edi
sar eax, 2
test eax, eax
je 0x406f79
lea esi, [edx + ebx]
cmp eax, ecx
jbe 0x407537
mov eax, dword [edi + ecx*4]
add ebx, 0xc
inc ecx
movq xmm0, qword [eax]
movq qword [esi], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add esi, 0xc
mov eax, dword [0x5c9e2c]
mov edi, dword [0x5c9e28]
sub eax, edi
sar eax, 2
cmp eax, ecx
ja 0x406f4d
cmp dword [0x5c9ce8], 0x10
jl 0x4070f0
mov al, byte [0x5c9b74]
mov byte [edx + ebx], al
mov eax, dword [0x5c9b75]
mov dword [edx + ebx + 1], eax
mov eax, dword [0x5c9b79]
mov dword [edx + ebx + 5], eax
add ebx, 9
cmp dword [0x5c9ce8], 0x10
jl 0x4070f0
mov eax, dword [0x5c9e50]
xor esi, esi
sub eax, dword [0x5c9e4c]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9e50]
mov ecx, dword [0x5c9e4c]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x18], esi
test eax, eax
je 0x4071d3
cmp eax, esi
jbe 0x407537
mov ecx, dword [ecx + esi*4]
xor esi, esi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], esi
mov eax, dword [ecx]
mov dword [edx + ebx], eax
mov eax, dword [ecx + 8]
sub eax, dword [ecx + 4]
sar eax, 2
mov dword [edx + ebx + 4], eax
add ebx, 8
mov eax, dword [ecx + 8]
sub eax, dword [ecx + 4]
sar eax, 2
test eax, eax
je 0x4070cc
nop word [eax + eax]
mov eax, dword [ecx + 8]
mov edi, dword [ecx + 4]
sub eax, edi
sar eax, 2
cmp eax, esi
jbe 0x407537
mov esi, dword [edi + esi*4]
xor edi, edi
movups xmm0, xmmword [esi]
movups xmmword [edx + ebx], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edx + ebx + 0x10], xmm0
mov eax, dword [esi + 0x20]
mov dword [edx + ebx + 0x20], eax
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
sar eax, 2
mov dword [edx + ebx + 0x24], eax
add ebx, 0x28
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
sar eax, 2
test eax, eax
je 0x4070b4
lea eax, [edx + ebx]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
sub eax, ecx
sar eax, 2
cmp eax, edi
jbe 0x407537
mov ecx, dword [ecx + edi*4]
add ebx, 8
mov edx, dword [ebp - 0x10]
inc edi
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, edx
mov edx, dword [ebp - 4]
mov dword [ecx + 4], eax
add ecx, 8
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
sar eax, 2
mov dword [ebp - 0x10], ecx
cmp edi, eax
jb 0x407072
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 8]
mov esi, dword [ebp - 0x1c]
sub eax, dword [ecx + 4]
inc esi
sar eax, 2
mov dword [ebp - 0x1c], esi
cmp esi, eax
jb 0x407020
mov eax, dword [0x5c9e50]
mov esi, dword [ebp - 0x18]
mov ecx, dword [0x5c9e4c]
inc esi
sub eax, ecx
mov dword [ebp - 0x18], esi
sar eax, 2
cmp eax, esi
ja 0x406fe9
jmp 0x4071d3
cmp dword [0x5c9ce8], 7
jle 0x4071d3
mov eax, dword [0x5c9e44]
xor ecx, ecx
sub eax, dword [0x5c9e40]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9e44]
mov esi, dword [0x5c9e40]
sub eax, esi
sar eax, 2
mov dword [ebp - 0x1c], ecx
test eax, eax
je 0x4071d3
cmp eax, ecx
jbe 0x407537
mov esi, dword [esi + ecx*4]
xor edi, edi
movups xmm0, xmmword [esi]
movups xmmword [edx + ebx], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edx + ebx + 0x10], xmm0
mov eax, dword [esi + 0x20]
mov dword [edx + ebx + 0x20], eax
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
sar eax, 2
mov dword [edx + ebx + 0x24], eax
add ebx, 0x28
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
sar eax, 2
test eax, eax
je 0x4071b7
lea eax, [edx + ebx]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
sub eax, ecx
sar eax, 2
cmp eax, edi
jbe 0x407537
mov ecx, dword [ecx + edi*4]
add ebx, 8
mov edx, dword [ebp - 0x10]
inc edi
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, edx
mov edx, dword [ebp - 4]
mov dword [ecx + 4], eax
add ecx, 8
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
sar eax, 2
mov dword [ebp - 0x10], ecx
cmp edi, eax
jb 0x407175
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x5c9e44]
inc ecx
mov esi, dword [0x5c9e40]
sub eax, esi
sar eax, 2
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
ja 0x407136
cmp dword [0x5c9ce8], 8
jle 0x4071f0
mov eax, dword [0x5c9dc6]
mov dword [edx + ebx], eax
mov eax, dword [0x5c9b7d]
mov dword [edx + ebx + 4], eax
add ebx, 8
cmp dword [0x5c9ce8], 0xa
jle 0x407204
mov eax, dword [0x5c9dca]
mov dword [edx + ebx], eax
add ebx, 4
cmp dword [0x5c9ce8], 0xb
jle 0x407221
mov eax, dword [0x5c9dce]
mov dword [edx + ebx], eax
mov eax, dword [0x5c9dd2]
mov dword [edx + ebx + 4], eax
add ebx, 8
cmp dword [0x5c9ce8], 0xc
jle 0x40723e
mov eax, dword [0x5c9dd6]
mov dword [edx + ebx], eax
mov eax, dword [0x5c9dda]
mov dword [edx + ebx + 4], eax
add ebx, 8
cmp dword [0x5c9ce8], 0xd
jle 0x4073ff
movq xmm0, qword [0x5c9dde]
xor esi, esi
movq qword [edx + ebx], xmm0
mov eax, dword [0x5c9de6]
mov dword [edx + ebx + 8], eax
mov al, byte [0x5c9dea]
mov byte [edx + ebx + 0xc], al
mov eax, dword [0x5c9def]
sub eax, dword [0x5c9deb]
sar eax, 2
mov dword [edx + ebx + 0xd], eax
add ebx, 0x11
mov eax, dword [0x5c9def]
mov ecx, dword [0x5c9deb]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x18], esi
test eax, eax
je 0x4073ff
cmp eax, esi
jbe 0x407537
mov ecx, dword [ecx + esi*4]
xor esi, esi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], esi
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
mov dword [edx + ebx], eax
movq xmm0, qword [ecx]
movq qword [edx + ebx + 4], xmm0
mov eax, dword [ecx + 8]
mov dword [edx + ebx + 0xc], eax
add ebx, 0x10
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
test eax, eax
je 0x4073e0
mov eax, dword [ecx + 0x10]
mov edi, dword [ecx + 0xc]
sub eax, edi
sar eax, 2
cmp eax, esi
jbe 0x407537
mov esi, dword [edi + esi*4]
mov ecx, 0x20
mov dword [ebp - 0x20], esi
mov eax, dword [esi + 0x88]
sub eax, dword [esi + 0x84]
sar eax, 2
mov dword [edx + ebx], eax
mov eax, dword [esi]
add esi, 4
mov dword [edx + ebx + 4], eax
add ebx, 8
lea edi, [edx + ebx]
sub ebx, 0xffffff80
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x20]
xor esi, esi
mov eax, dword [ecx + 0x88]
sub eax, dword [ecx + 0x84]
sar eax, 2
test eax, eax
je 0x4073b2
nop dword [eax]
mov eax, dword [ecx + 0x88]
mov edi, dword [ecx + 0x84]
sub eax, edi
sar eax, 2
cmp eax, esi
jbe 0x407537
mov eax, dword [edi + esi*4]
cmp dword [0x5c9ce8], 4
movups xmm0, xmmword [eax]
movups xmmword [edx + ebx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edx + ebx + 0x10], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [edx + ebx + 0x20], xmm0
jge 0x40738e
mov al, byte [eax + 0x28]
mov byte [edx + ebx + 0x28], al
mov eax, 0x29
jmp 0x40739c
mov ax, word [eax + 0x28]
mov word [edx + ebx + 0x28], ax
mov eax, 0x2a
add ebx, eax
inc esi
mov eax, dword [ecx + 0x88]
sub eax, dword [ecx + 0x84]
sar eax, 2
cmp esi, eax
jb 0x407340
cmp dword [0x5c9ce8], 0x11
jl 0x4073c5
mov al, byte [ecx + 0x90]
mov byte [edx + ebx], al
inc ebx
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
cmp esi, eax
jb 0x4072e0
mov eax, dword [0x5c9def]
mov esi, dword [ebp - 0x18]
mov ecx, dword [0x5c9deb]
inc esi
sub eax, ecx
mov dword [ebp - 0x18], esi
sar eax, 2
cmp eax, esi
ja 0x4072a4
cmp dword [0x5c9ce8], 0xe
jle 0x407465
mov eax, dword [0x5c9e38]
xor esi, esi
sub eax, dword [0x5c9e34]
sar eax, 2
mov dword [edx + ebx], eax
add ebx, 4
mov eax, dword [0x5c9e38]
mov ecx, dword [0x5c9e34]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407465
lea edi, [edx + ebx]
cmp eax, esi
jbe 0x407537
mov ecx, dword [ecx + esi*4]
add ebx, 8
inc esi
mov eax, dword [ecx]
mov dword [edi], eax
mov eax, dword [ecx + 4]
mov dword [edi + 4], eax
add edi, 8
mov eax, dword [0x5c9e38]
mov ecx, dword [0x5c9e34]
sub eax, ecx
sar eax, 2
cmp eax, esi
ja 0x40743d
cmp dword [0x5c9ce8], 0x12
jl 0x407477
mov al, byte [0x5c9df7]
mov byte [edx + ebx], al
inc ebx
cmp dword [0x5c9ce8], 0x13
jl 0x40749c
movups xmm0, xmmword [0x5c9df8]
movups xmmword [edx + ebx], xmm0
movq xmm0, qword [0x5c9e08]
movq qword [edx + ebx + 0x10], xmm0
add ebx, 0x18
cmp ebx, 0x2000000
jge 0x407514
xor esi, esi
mov edi, 0x157a
xor ecx, ecx
nop dword [eax]
mov al, byte [esi + str._9j_4AAQSkZJRgABAQAAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_9j_4AAQSkZJRgABAQAAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQE_t_t_t_t_t_2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_wAARCAGAAYADASIAAhEBAxEB_8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL_8QAtRAAAgEDAwIEAwUFBA_t_t_t_t_tQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJy_t_t_t_t_ttLT1NXW19jZ2uHi4Tl5ufo6erx8vP09fb3Pn6_8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL_8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2_t_t_t_t_tNzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3Pn6_9oADAMBAAIRAxEAPwD9UKKKK_14P8rwooooAKK_t_t_t_t_tKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiuBIvxO8EfCnwvqfi_t_t_t_t_t3xxr1joukaXA09xPczxIxCiXiOJpVkkJKDIQEjnuazq1qOHpVK1erClRpRc6lWpJQpwhFNuUpSdkkottt_jq9KVKrXqQo0Kc6tWpKMKdOnFynOcpcsYxirttvRJK92tdUd4zoilnZUUdWZgqgc8kk4H3T1PY8nBJYvjl2D8Af2edLuNRI_jv_t_t_t_t_tTNOMSOy21vLHezu67gEMNrO8gZiAANuevGQa_Fr4z_8FLP2iP2s_HM3wJ_YB8Davrt5eXbaYfGlpDOLSVZJHilkxdwNBGEXdtPmDPzHJAIr9J_2H_8Ag2A8b_GDUrT4vftfEHVtf1LVnttSvfAdybtYIiWEph0WdyYvm3knC8ZKnowbbuOfp_t_t_t_t_tFZPk1Svl_CmGhneMpNwnj6knHLKU05K9Nxlz4qzjb3XCm7pxqTV2fv8AwX4DZrm0KWO4nxEsows1CcMDTip5jVg3O3OmnDDqSV7S56i2lBWTf5s_GL_gvJFYXM4DnwY8QM9EtJcTeIbe31eG1MCyHMjFrJ40UovXfjBOTngfq1wZ2l4f_bS_t_t_t_t_tFSeNdP0waJrNmqrrWimdp5LGRpnhjDyNjJcxsSMDBODyAK_bP9qH9hj9hP8AYW_YHMF5oHwp8MaLomkFJrWW8voba5uGuZbW7gtZEuLu3M6uZ9pG185xkkg1_JZ_wQa8Nahp_gn40J_Kkj0LxJ4ku5dDY5EJtode1DasIxt2rGygbeBgjAP_t_t_t_t_tX5Xwg8WONLP45dnGMp4jLsXhMVUnhaWFo0qWEdGEpU6lKUI1tzqNN0qSupxu3K7PpvFLwx4P4V4HqZhleEnh8fhsThadPEVcRVqVsT7WtKFSFSMpzb5ff_dwTXK9lFs_oJooqN5oYwTJLHGB1LuqgfXcwxdf1_8A1nf9fx1P5WSb219P_t_t_t_t_tu8_6631JKKzZNZ0aLPm6tpseOvmX9omPrunGPx_Wqp8UeGFznxHoQx1zqnDHbnN1x_nqeah1KS3qQXrOK_ORap1H8MJv0jJS2T_P73qblFYP_AAlfhXp_wk2gfDnTf8A5Kpw8UeGG74j0I_TV9OPr6XR9P59cHK9rR_50__A4__JD9lV_5_t_t_t_t_t9VP_AACXku3p9666vcorLTXNDlGYtZ0uQdimo2bDv_dnPp6nv1wc2kvrKQZjvLVx6pcQsO_dZD6fz64OaU4P4ZxfpJP8m_66slwmt4yXrF_5f15lqimCSNhlZEYeodSPbox_nJpwZT0YH6Ef4n_AD3qvTvx_rz3J_r8vP09erWikyvqPzHv7_t_t_t_t_t38eDlpkjAyZEA9Sygdx3Pt_PnIJIH9fmu77fnq2m2iqcmoafCMy31nEPWS6gQY9ctIP5_iaw9R8bDtJgluNQ8T6FbRQqWkaXV9OQgDdn5WugcjYSR15HUmolVpQTc6kIpK7cpxSS11d3_AHX_AMHd3ClUm7Qpzm7pWjCTd22lsnvyv_Pqo_t_t_t_t_tqKWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4Tl5ufo6erx8vP09fb3Pn6_8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL_8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoE_t_t_t_t_tIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09f_t_t_t_t_tb3Pn6_9oADAMBAAIRAxEAPwD9UKKKK_14P8rwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo_t_t_t_t_toooAKKKKACiiigAooooAKKKKACiiuBIvxO8EfCnwvqfi3xxr1joukaXA09xPczxIxCiXiOJpVkkJKDIQEjnuazq1qOHpVK1erClRpRc6lWpJQpwhFNuUpSdkkottt_jq9KVKrXqQo0Kc6tWpKMKdOnFynOcpcsYxirttvRJK92tdUd4zoilnZU_t_t_t_t_tUdWZgqgc8kk4H3T1PY8nBJYvjl2D8Af2edLuNRI_jvTNOMSOy21vLHezu67gEMNrO8gZiAANuevGQa_Fr4z_8FLP2iP2s_HM3wJ_YB8Davrt5eXbaYfGlpDOLSVZJHilkxdwNBGEXdtPmDPzHJAIr9J_2H_8Ag2A8b_GDUrT4vftfEHVtf1_t_t_t_t_tLVnttSvfAdybtYIiWEph0WdyYvm3knC8ZKnowbbuOfpFZPk1Svl_CmGhneMpNwnj6knHLKU05K9Nxlz4qzjb3XCm7pxqTV2fv8AwX4DZrm0KWO4nxEsows1CcMDTip5jVg3O3OmnDDqSV7S56i2lBWTf5s_GL_gvJFYXM4DnwY8QM9EtJcT_t_t_t_t_teIbe31eG1MCyHMjFrJ40UovXfjBOTngfq1wZ2l4f_bSFSeNdP0waJrNmqrrWimdp5LGRpnhjDyNjJcxsSMDBODyAK_bP9qH9hj9hP8AYW_YHMF5oHwp8MaLomkFJrWW8voba5uGuZbW7gtZEuLu3M6uZ9pG185xkkg1_JZ_wQa8Nahp_gn_t_t_t_t_t40J_Kkj0LxJ4ku5dDY5EJtode1DasIxt2rGygbeBgjA]
xor byte [ecx + edx], al
lea eax, [esi + 1]
cdq
inc ecx
idiv edi
mov esi, edx
mov edx, dword [ebp - 4]
cmp ecx, 0x2000000
jb 0x4074b0
push 0x5a270c
push str.C:_Game_res_Data_GameCfg.cfg
call fcn.0054b0b6
mov edi, eax
add esp, 8
test edi, edi
je 0x40752e
mov esi, dword [ebp - 4]
push edi
push 0x2000000
push 1
push esi
call fcn.0054cb97
push edi
call fcn.0054b25b
push edi
call fcn.0054b32a
push esi
call fcn.0040a2fb
add esp, 0x1c
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x5a2784
call fcn.0041a50b
mov esi, dword [ebp - 4]
push esi
call fcn.0040a2fb
add esp, 4
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
push str.invalid_vector_T__subscript
call fcn.00543f3c
int3