Function at 0x406a40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd8
movups xmm0, xmmword [0x445fc4]
mov ax, word [0x445fdc]
push esi
xor esi, esi
mov dword [esp + 0x90], ecx
push edi
mov edi, dword [0x44b508]
mov word [esp + 0x48], ax
lea eax, [esi + 4]
lea ecx, [esi + 0x1f]
movups xmmword [esp + 0x30], xmm0
movq xmm0, qword [0x445fd4]
movq qword [esp + 0x40], xmm0
cmp edi, 2
jl 0x406b74
movaps xmm2, xmmword [0x446860]
mov esi, 8
movaps xmm3, xmmword [0x446930]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, 0x445fc4
psrad xmm1, xmm4
movd xmm5, ecx
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4468a0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x446870]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
paddw xmm1, xmmword [0x4468e0]
movq xmm0, qword [eax]
pxor xmm1, xmm0
movaps xmm0, xmm2
movq qword [esp + 0x30], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4468a0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [esp + 0x38]
paddw xmm1, xmmword [0x4468e0]
pxor xmm1, xmm0
movq qword [esp + 0x38], xmm1
mov eax, 0x4d4873ed
imul esi
mov eax, 1
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub eax, ecx
imul eax, eax, 0x35
add eax, esi
xor word [esp + esi*2 + 0x30], ax
inc esi
cmp esi, 0xd
jl 0x406b74
lea ecx, [esp + 0x30]
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
lea edx, [ecx + 2]
mov dword [esp + 0x24], 7
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x406bc0
sub ecx, edx
lea eax, [esp + 0x30]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00403b90
movups xmm0, xmmword [str.b_Y_v_ve]
movups xmmword [esp + 0x30], xmm0
movups xmm0, xmmword [0x445f54]
pextrw eax, xmm0, 7
movups xmmword [esp + 0x40], xmm0
test ax, ax
je 0x406d59
xor esi, esi
cmp edi, 2
jl 0x406d30
movaps xmm4, xmmword [0x446860]
mov eax, 4
movaps xmm3, xmmword [0x446930]
xor ecx, ecx
movaps xmm6, xmmword [0x4468a0]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
nop dword [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x4468e0]
paddw xmm1, xmm0
movq xmm0, qword [esp + ecx*2 + 0x30]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [esp + ecx*2 + 0x30], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x4468e0]
paddw xmm1, xmm0
movq xmm0, qword [esp + ecx*2 + 0x38]
pxor xmm1, xmm0
movq qword [esp + ecx*2 + 0x38], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x406c40
jmp 0x406d59
mov eax, 0x3521cfb3
mov ecx, esi
mul esi
mov eax, 1
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub eax, ecx
imul eax, eax, 0x35
add eax, esi
xor word [esp + esi*2 + 0x30], ax
inc esi
cmp esi, 0x10
jl 0x406d30
lea ecx, [esp + 0x30]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x8c], 0
lea edx, [ecx + 2]
mov dword [esp + 0x90], 7
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x406d80
sub ecx, edx
lea eax, [esp + 0x30]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x84]
call fcn.00403b90
lea eax, [esp + 0x10]
push eax
lea edx, [esp + 0x80]
lea ecx, [esp + 0xb4]
call fcn.0041a7c0
mov edx, dword [esp + 0x94]
add esp, 4
cmp edx, 8
jb 0x406dfb
mov ecx, dword [esp + 0x7c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x406df1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407aaf
push edx
push ecx
call fcn.0041c138
add esp, 8
mov edx, dword [esp + 0x24]
cmp edx, 8
jb 0x406e37
mov ecx, dword [esp + 0x10]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x406e2d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407aaf
push edx
push ecx
call fcn.0041c138
add esp, 8
cmp word [0x446792], 0
movups xmm0, xmmword [str.eDX_IHSOw__]
movups xmmword [esp + 0x10], xmm0
movq xmm0, qword [0x44678c]
movq qword [esp + 0x20], xmm0
je 0x406f88
xor esi, esi
cmp edi, 2
jl 0x406f60
movaps xmm2, xmmword [0x446860]
mov eax, 4
movaps xmm3, xmmword [0x446930]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov esi, 8
pmuldq xmm0, xmm3
movaps xmm7, xmmword [0x4468e0]
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, 0x1f
psrad xmm1, xmm4
movaps xmm0, xmm1
movd xmm5, eax
mov eax, str.eDX_IHSOw__
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4468a0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x446870]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm7
paddw xmm1, xmm0
movq xmm0, qword [eax]
pxor xmm1, xmm0
movaps xmm0, xmm2
movq qword [esp + 0x10], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4468a0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm7
paddw xmm1, xmm0
movq xmm0, qword [esp + 0x18]
pxor xmm1, xmm0
movq qword [esp + 0x18], xmm1
nop
mov eax, 0x4d4873ed
imul esi
mov eax, 1
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub eax, ecx
imul eax, eax, 0x35
add eax, esi
xor word [esp + esi*2 + 0x10], ax
inc esi
cmp esi, 0xc
jl 0x406f60
lea ecx, [esp + 0x10]
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
lea edx, [ecx + 2]
mov dword [esp + 0x6c], 7
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x406fa7
sub ecx, edx
lea eax, [esp + 0x10]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x60]
call fcn.00403b90
movups xmm0, xmmword [0x446544]
movups xmmword [esp + 0x30], xmm0
movups xmm0, xmmword [0x446554]
pextrw eax, xmm0, 7
movups xmmword [esp + 0x40], xmm0
test ax, ax
je 0x407139
xor esi, esi
cmp edi, 2
jl 0x407110
movaps xmm4, xmmword [0x446860]
mov eax, 4
movaps xmm3, xmmword [0x446930]
xor ecx, ecx
movaps xmm6, xmmword [0x4468a0]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x4468e0]
paddw xmm1, xmm0
movq xmm0, qword [esp + ecx*2 + 0x30]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [esp + ecx*2 + 0x30], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x4468e0]
paddw xmm1, xmm0
movq xmm0, qword [esp + ecx*2 + 0x38]
pxor xmm1, xmm0
movq qword [esp + ecx*2 + 0x38], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x407020
jmp 0x407139
mov eax, 0x3521cfb3
mov ecx, esi
mul esi
mov eax, 1
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub eax, ecx
imul eax, eax, 0x35
add eax, esi
xor word [esp + esi*2 + 0x30], ax
inc esi
cmp esi, 0x10
jl 0x407110
lea ecx, [esp + 0x30]
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
lea edx, [ecx + 2]
mov dword [esp + 0x24], 7
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407160
sub ecx, edx
lea eax, [esp + 0x30]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00403b90
lea eax, [esp + 0x58]
push eax
lea edx, [esp + 0x14]
lea ecx, [esp + 0x80]
call fcn.0041a7c0
mov edx, dword [esp + 0x28]
add esp, 4
cmp edx, 8
jb 0x4071d2
mov ecx, dword [esp + 0x10]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4071c8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ab4
push edx
push ecx
call fcn.0041c138
add esp, 8
mov edx, dword [esp + 0x6c]
cmp edx, 8
jb 0x40720e
mov ecx, dword [esp + 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407204
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ab4
push edx
push ecx
call fcn.0041c138
add esp, 8
movups xmm0, xmmword [0x445fc4]
mov ax, word [0x445fdc]
xor esi, esi
mov word [esp + 0x48], ax
movups xmmword [esp + 0x30], xmm0
movq xmm0, qword [0x445fd4]
movq qword [esp + 0x40], xmm0
cmp edi, 2
jl 0x407332
movaps xmm2, xmmword [0x446860]
mov eax, 4
movaps xmm3, xmmword [0x446930]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov esi, 8
pmuldq xmm0, xmm3
movaps xmm7, xmmword [0x4468e0]
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, 0x1f
psrad xmm1, xmm4
movaps xmm0, xmm1
movd xmm5, eax
mov eax, 0x445fc4
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4468a0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x446870]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm7
paddw xmm1, xmm0
movq xmm0, qword [eax]
pxor xmm1, xmm0
movaps xmm0, xmm2
movq qword [esp + 0x30], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4468a0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm7
paddw xmm1, xmm0
movq xmm0, qword [esp + 0x38]
pxor xmm1, xmm0
movq qword [esp + 0x38], xmm1
mov eax, 0x4d4873ed
imul esi
mov eax, 1
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub eax, ecx
imul eax, eax, 0x35
add eax, esi
xor word [esp + esi*2 + 0x30], ax
inc esi
cmp esi, 0xd
jl 0x407332
lea ecx, [esp + 0x30]
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
lea edx, [ecx + 2]
mov dword [esp + 0x6c], 7
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407380
sub ecx, edx
lea eax, [esp + 0x30]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x60]
call fcn.00403b90
movups xmm0, xmmword [str.b_Y_v_vey_N___0D]
movups xmmword [esp + 0x30], xmm0
movups xmm0, xmmword [0x4464fc]
pextrw eax, xmm0, 7
movups xmmword [esp + 0x40], xmm0
test ax, ax
je 0x407519
xor esi, esi
cmp edi, 2
jl 0x4074f0
movaps xmm4, xmmword [0x446860]
mov eax, 4
movaps xmm3, xmmword [0x446930]
xor ecx, ecx
movaps xmm6, xmmword [0x4468a0]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
nop dword [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x4468e0]
paddw xmm1, xmm0
movq xmm0, qword [esp + ecx*2 + 0x30]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [esp + ecx*2 + 0x30], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x4468e0]
paddw xmm1, xmm0
movq xmm0, qword [esp + ecx*2 + 0x38]
pxor xmm1, xmm0
movq qword [esp + ecx*2 + 0x38], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x407400
jmp 0x407519
mov eax, 0x3521cfb3
mov ecx, esi
mul esi
mov eax, 1
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub eax, ecx
imul eax, eax, 0x35
add eax, esi
xor word [esp + esi*2 + 0x30], ax
inc esi
cmp esi, 0x10
jl 0x4074f0
lea ecx, [esp + 0x30]
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
lea edx, [ecx + 2]
mov dword [esp + 0x24], 7
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407540
sub ecx, edx
lea eax, [esp + 0x30]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00403b90
lea eax, [esp + 0x58]
push eax
lea edx, [esp + 0x14]
lea ecx, [esp + 0x34]
call fcn.0041a7c0
mov edx, dword [esp + 0x28]
add esp, 4
cmp edx, 8
jb 0x4075af
mov ecx, dword [esp + 0x10]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4075a5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ab9
push edx
push ecx
call fcn.0041c138
add esp, 8
mov edx, dword [esp + 0x6c]
cmp edx, 8
jb 0x4075eb
mov ecx, dword [esp + 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4075e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ab9
push edx
push ecx
call fcn.0041c138
add esp, 8
mov edx, dword [esp + 0xc0]
mov eax, SysReAllocString
mov ecx, dword [esp + 0x8c]
sub eax, edx
cmp eax, ecx
jb 0x407abe
cmp dword [esp + 0xc4], 8
lea eax, [esp + 0xb0]
lea esi, [esp + 0x7c]
mov dword [esp + 0x10], 0
cmovae eax, dword [esp + 0xb0]
lea edi, [esp + 0x10]
cmp dword [esp + 0x90], 8
mov dword [esp + 0x74], eax
cmovae esi, dword [esp + 0x7c]
add ecx, edx
mov dword [esp + 0x78], esi
mov esi, 7
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x70], ecx
cmp ecx, esi
jbe 0x4076f9
mov esi, ecx
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x407680
mov esi, SysReAllocString
mov eax, 0xfffffffe
jmp 0x4076a1
mov eax, 0xa
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x7fffffff
ja 0x407ac8
add eax, eax
cmp eax, 0x1000
jb 0x4076d3
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x407ac8
push ecx
call fcn.0041c108
add esp, 4
test eax, eax
je 0x407ac3
mov ecx, dword [esp + 0x70]
lea edi, [eax + 0x23]
mov edx, dword [esp + 0xc0]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x4076f1
test eax, eax
je 0x4076ef
push eax
call fcn.0041c108
mov ecx, dword [esp + 0x74]
add esp, 4
mov edx, dword [esp + 0xc0]
mov edi, eax
jmp 0x4076f1
xor edi, edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], esi
lea esi, [edx + edx]
push esi
push eax
push edi
mov dword [esp + 0x2c], ecx
call fcn.0041d490
mov eax, dword [esp + 0x98]
add esp, 0xc
add eax, eax
push eax
push dword [esp + 0x7c]
lea eax, [esi + edi]
push eax
call fcn.0041d490
mov eax, dword [esp + 0x7c]
lea edx, [esp + 0x1c]
xor ecx, ecx
add esp, 0xc
mov word [edi + eax*2], cx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x9c]
call fcn.00414200
mov edx, dword [esp + 0x28]
add esp, 4
cmp edx, 8
jb 0x407787
mov ecx, dword [esp + 0x10]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40777d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407ac3
push edx
push ecx
call fcn.0041c138
add esp, 8
cmp dword [esp + 0xac], 8
lea ecx, [esp + 0x98]
mov eax, dword [esp + 0xa8]
lea edi, [esp + 0x98]
cmovae ecx, dword [esp + 0x98]
cmovae edi, dword [esp + 0x98]
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
lea esi, [ecx + eax*2]
mov dword [esp + 0x24], 0xf
mov eax, esi
lea ecx, [esp + 0x10]
sub eax, edi
sar eax, 1
push eax
call fcn.00412950
cmp edi, esi
je 0x407830
mov dl, byte [edi]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x78], dl
cmp ecx, dword [esp + 0x24]
jae 0x407812
cmp dword [esp + 0x24], 0x10
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
cmovae eax, dword [esp + 0x10]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x407829
push dword [esp + 0x78]
mov byte [esp + 0x78], 0
push dword [esp + 0x78]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004045c0
add edi, 2
cmp edi, esi
jne 0x4077e3
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x5c]
call fcn.00403580
cmp dword [esp + 0x6c], 0x10
lea edi, [esp + 0x58]
lea esi, [esp + 0x58]
cmovae edi, dword [esp + 0x58]
cmovae esi, dword [esp + 0x58]
add edi, dword [esp + 0x68]
cmp esi, edi
je 0x407873
nop dword [eax]
movsx eax, byte [esi]
push eax
call fcn.00422170
mov byte [esi], al
add esp, 4
inc esi
cmp esi, edi
jne 0x407860
cmp dword [esp + 0x6c], 0x10
lea edx, [esp + 0x58]
mov dword [esp + 0xc8], 0
cmovae edx, dword [esp + 0x58]
mov ecx, edx
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xf
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4078a7
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0xd0]
call fcn.00403ce0
mov esi, dword [esp + 0x94]
lea edx, [esp + 0xc8]
mov ecx, esi
call fcn.00406680
mov edx, dword [esp + 0xdc]
cmp edx, 0x10
jb 0x40790f
mov ecx, dword [esp + 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407905
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407acd
push edx
push ecx
call fcn.0041c138
add esp, 8
mov edx, dword [esp + 0x6c]
cmp edx, 0x10
jb 0x407945
mov ecx, dword [esp + 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40793b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407acd
push edx
push ecx
call fcn.0041c138
add esp, 8
mov edx, dword [esp + 0x24]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
mov byte [esp + 0x58], 0
cmp edx, 0x10
jb 0x407990
mov ecx, dword [esp + 0x10]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407986
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407acd
push edx
push ecx
call fcn.0041c138
add esp, 8
mov edx, dword [esp + 0xac]
cmp edx, 8
jb 0x4079d2
mov ecx, dword [esp + 0x98]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4079c8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407acd
push edx
push ecx
call fcn.0041c138
add esp, 8
mov edx, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 7
mov word [esp + 0x98], ax
cmp edx, 8
jb 0x407a2e
mov ecx, dword [esp + 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407a24
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407acd
push edx
push ecx
call fcn.0041c138
add esp, 8
mov eax, dword [esp + 0x90]
cmp eax, 8
jb 0x407a69
mov edx, dword [esp + 0x7c]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407a5f
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407acd
push ecx
push edx
call fcn.0041c138
add esp, 8
mov eax, dword [esp + 0xc4]
cmp eax, 8
jb 0x407aa7
mov edx, dword [esp + 0xb0]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x407a9d
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x407acd
push ecx
push edx
call fcn.0041c138
add esp, 8
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.00421c52
call fcn.00421c52
call fcn.00421c52
call fcn.00401720
call fcn.00421c52
call fcn.00401680
call fcn.00421c52
int3