Function at 0x412650
Capabilities:
Check os version
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43e480
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
sub esp, 0xc
mov eax, 0x2b14
call fcn.00420b70
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x5c], 0
movups xmm0, xmmword [0x43fb9c]
movups xmmword [ebp - 0xa61], xmm0
movups xmm0, xmmword [0x43fbac]
movups xmmword [ebp - 0xa51], xmm0
movups xmm0, xmmword [0x43fbbc]
movups xmmword [ebp - 0xa41], xmm0
movq xmm0, qword [0x43fbcc]
movq qword [ebp - 0xa31], xmm0
mov al, byte [0x43fbd4]
mov byte [ebp - 0xa29], al
xor edx, edx
mov dword [ebp - 0xc4], edx
mov edi, dword [0x450534]
lea esi, [edx + 5]
cmp edi, 2
jl 0x412850
movaps xmm4, xmmword [0x43f550]
movaps xmm3, xmmword [0x4408c0]
movd xmm5, esi
movaps xmm6, xmmword [str.3333]
mov ecx, 0x1f
movd xmm7, ecx
movaps xmm0, xmmword [str.2222222222222222]
movaps xmmword [ebp - 0x70], xmm0
mov ecx, dword [ebp - 0x70]
nop dword [eax]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
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
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa61]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa61], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
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
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa5d]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa5d], xmm1
add edx, 8
cmp edx, 0x38
jl 0x412730
mov dword [ebp - 0xc4], edx
cmp edx, 0x39
jge 0x41288d
nop word [eax + eax]
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [ebp - 0xc4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x33
mov edx, dword [ebp - 0xc4]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xa61], cl
inc edx
mov dword [ebp - 0xc4], edx
cmp edx, 0x39
jl 0x412850
mov dword [ebp - 0x7f0], 0
mov dword [ebp - 0x7e0], 0
mov dword [ebp - 0x7dc], 0xf
lea ecx, [ebp - 0xa61]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4128b4
sub ecx, edx
push ecx
lea eax, [ebp - 0xa61]
push eax
lea ecx, [ebp - 0x7f0]
call fcn.00401820
lea eax, [ebp - 0x7f0]
push eax
call fcn.00409d30
add esp, 4
mov byte [ebp - 0x25], al
mov edx, dword [ebp - 0x7dc]
cmp edx, 0x10
jb 0x41291f
inc edx
mov ecx, dword [ebp - 0x7f0]
mov eax, ecx
cmp edx, 0x1000
jb 0x412912
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov al, byte [ebp - 0x25]
mov dword [ebp - 0x7e0], 0
mov dword [ebp - 0x7dc], 0xf
mov byte [ebp - 0x7f0], 0
test al, al
je 0x412948
mov dword [0], 0x2a
movups xmm0, xmmword [0x43fbd8]
movups xmmword [ebp - 0x957], xmm0
movups xmm0, xmmword [0x43fbe8]
movups xmmword [ebp - 0x947], xmm0
movups xmm0, xmmword [0x43fbf8]
movups xmmword [ebp - 0x937], xmm0
mov ax, word [0x43fc08]
mov word [ebp - 0x927], ax
mov al, byte [0x43fc0a]
mov byte [ebp - 0x925], al
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x412ae3
movaps xmm4, xmmword [0x43f550]
movaps xmm3, xmmword [0x4408c0]
movd xmm5, esi
movaps xmm6, xmmword [str.3333]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.2222222222222222]
movaps xmmword [ebp - 0x70], xmm0
mov ecx, dword [ebp - 0x70]
nop dword [eax + eax]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
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
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x957]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x957], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
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
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x953]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x953], xmm1
add edx, 8
cmp edx, 0x30
jl 0x4129d0
mov dword [ebp - 0x24], edx
cmp edx, 0x33
jge 0x412b17
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [ebp - 0x24]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x33
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x957], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0x33
jl 0x412ae3
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x810], 0
mov dword [ebp - 0x80c], 0xf
lea ecx, [ebp - 0x957]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412b40
sub ecx, edx
push ecx
lea eax, [ebp - 0x957]
push eax
lea ecx, [ebp - 0x820]
call fcn.00401820
mov esi, 1
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x820]
push eax
call fcn.00409d30
add esp, 4
test al, al
je 0x412f4a
movups xmm0, xmmword [str.q_th_ERJJfZXPWQ]
movups xmmword [ebp - 0xa28], xmm0
movups xmm0, xmmword [str.__1___:]
movups xmmword [ebp - 0xa18], xmm0
movups xmm0, xmmword [0x43fc2c]
movups xmmword [ebp - 0xa08], xmm0
mov eax, dword [0x43fc3c]
mov dword [ebp - 0x9f8], eax
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x412d06
movaps xmm4, xmmword [0x43f550]
movaps xmm3, xmmword [0x4408c0]
mov eax, 5
movd xmm5, eax
movaps xmm6, xmmword [str.3333]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.2222222222222222]
movaps xmmword [ebp - 0x70], xmm0
mov ecx, dword [ebp - 0x70]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
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
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa28]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa28], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
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
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa24]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa24], xmm1
add edx, 8
cmp edx, 0x30
jl 0x412bf3
mov dword [ebp - 0x24], edx
cmp edx, 0x34
jge 0x412d3a
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [ebp - 0x24]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x33
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xa28], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0x34
jl 0x412d06
mov dword [ebp - 0x808], 0
mov dword [ebp - 0x7f8], 0
mov dword [ebp - 0x7f4], 0xf
lea ecx, [ebp - 0xa28]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412d61
sub ecx, edx
push ecx
lea eax, [ebp - 0xa28]
push eax
lea ecx, [ebp - 0x808]
call fcn.00401820
mov esi, 3
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x808]
push eax
call fcn.00409d30
add esp, 4
test al, al
je 0x412f4a
lea eax, [ebp - 0x9f4]
push eax
call fcn.00411050
add esp, 4
mov esi, eax
mov dword [ebp - 0x30], eax
mov ecx, dword [0x43fc40]
mov dword [ebp - 0x27f], ecx
mov cx, word [0x43fc44]
mov word [ebp - 0x27b], cx
test ch, ch
je 0x412dfd
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x27f], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x412dd3
mov dword [ebp - 0x388], 0
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x374], 0xf
lea ecx, [ebp - 0x27f]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412e24
sub ecx, edx
push ecx
lea eax, [ebp - 0x27f]
push eax
lea ecx, [ebp - 0x388]
call fcn.00401820
lea edx, [ebp - 0x388]
cmp dword [ebp - 0x374], 0x10
mov ecx, dword [ebp - 0x388]
cmovae edx, ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x14], 0x10
jb 0x412e6a
mov esi, dword [esi]
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x378]
cmp eax, dword [ebp - 0x24]
ja 0x412f26
test eax, eax
jne 0x412e87
mov eax, 0xf
jmp 0x412f53
mov ecx, dword [ebp - 0x24]
sub ecx, eax
lea eax, [ecx + 1]
add eax, esi
mov dword [ebp - 0x3c], eax
movsx ecx, byte [edx]
mov dword [ebp - 0x38], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00421a20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x412f20
nop
mov ecx, eax
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x378]
sub esi, 4
jb 0x412ed1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x412ed6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x412ec0
cmp esi, 0xfffffffc
je 0x412f31
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x412f03
cmp esi, 0xfffffffd
je 0x412f31
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x412f03
cmp esi, 0xfffffffe
je 0x412f31
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x412f03
cmp esi, 0xffffffff
je 0x412f31
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x412f31
mov ecx, dword [ebp - 0x24]
inc ecx
mov eax, dword [ebp - 0x3c]
sub eax, ecx
push eax
push dword [ebp - 0x38]
push ecx
call fcn.00421a20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x412eb0
mov ecx, dword [ebp - 0x388]
mov byte [ebp - 0x25], 1
mov eax, 0xf
jmp 0x412f5b
mov eax, 0xf
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x388]
je 0x412f53
mov byte [ebp - 0x25], 1
jmp 0x412f5b
mov ecx, dword [ebp - 0x388]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x25], 0
test al, 8
je 0x412fb3
and eax, 0xfffffff7
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x374]
cmp edx, 0x10
jb 0x412f98
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412f8b
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x374], 0xf
mov byte [ebp - 0x388], 0
test al, 4
je 0x413015
and eax, 0xfffffffb
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x9e0]
cmp edx, 0x10
jb 0x412ffa
inc edx
mov ecx, dword [ebp - 0x9f4]
mov eax, ecx
cmp edx, 0x1000
jb 0x412fed
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x9e4], 0
mov dword [ebp - 0x9e0], 0xf
mov byte [ebp - 0x9f4], 0
test al, 2
je 0x413077
and eax, 0xfffffffd
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x7f4]
cmp edx, 0x10
jb 0x41305c
inc edx
mov ecx, dword [ebp - 0x808]
mov eax, ecx
cmp edx, 0x1000
jb 0x41304f
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7f8], 0
mov dword [ebp - 0x7f4], 0xf
mov byte [ebp - 0x808], 0
and eax, 0xfffffffe
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x80c]
cmp edx, 0x10
jb 0x4130b7
inc edx
mov ecx, dword [ebp - 0x820]
mov eax, ecx
cmp edx, 0x1000
jb 0x4130ad
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x810], 0
mov dword [ebp - 0x80c], 0xf
mov byte [ebp - 0x820], 0
cmp byte [ebp - 0x25], 0
je 0x4130e2
mov dword [0], 0x2a
push 1
push str._a_z_8_
lea ecx, [ebp - 0xba8]
call fcn.00408960
push 1
push str._A_Z_8_
lea ecx, [ebp - 0xbc8]
call fcn.00408960
push 1
push str.d6_
lea ecx, [ebp - 0xb80]
call fcn.00408960
lea eax, [ebp - 0x9dc]
push eax
call fcn.00411050
add esp, 4
mov esi, eax
mov dword [ebp - 0x3c], eax
movq xmm0, qword [str.bRAY]
movq qword [ebp - 0x423], xmm0
mov cx, word [0x43fc50]
mov word [ebp - 0x41b], cx
mov cl, byte [0x43fc52]
mov byte [ebp - 0x419], cl
xor edx, edx
mov dword [ebp - 0x24], edx
nop dword [eax + eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x423], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xb
jl 0x413160
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 0xf
lea ecx, [ebp - 0x423]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4131b1
sub ecx, edx
push ecx
lea eax, [ebp - 0x423]
push eax
lea ecx, [ebp - 0x454]
call fcn.00401820
lea ecx, [ebp - 0x454]
cmp dword [ebp - 0x440], 0x10
mov edx, dword [ebp - 0x454]
cmovae ecx, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x14], 0x10
jb 0x4131f7
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp - 0x444]
cmp eax, dword [ebp - 0x24]
ja 0x4132ce
test eax, eax
jne 0x413211
xor esi, esi
jmp 0x4132d1
mov edx, dword [ebp - 0x24]
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x2c], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x34], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00421a20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x4132c8
nop dword [eax]
mov ecx, eax
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x444]
sub esi, 4
jb 0x413261
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41326a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x413250
cmp esi, 0xfffffffc
je 0x413476
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4132a7
cmp esi, 0xfffffffd
je 0x413476
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4132a7
cmp esi, 0xfffffffe
je 0x413476
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4132a7
cmp esi, 0xffffffff
je 0x413476
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x413476
mov esi, dword [ebp - 0x24]
inc esi
mov eax, dword [ebp - 0x2c]
sub eax, esi
push eax
push dword [ebp - 0x34]
push esi
call fcn.00421a20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x413240
mov edx, dword [ebp - 0x454]
or esi, 0xffffffff
mov eax, dword [ebp - 0x440]
cmp eax, 0x10
jb 0x413307
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4132fd
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push ecx
push edx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 0xf
mov byte [ebp - 0x454], 0
mov edx, dword [ebp - 0x9c8]
cmp edx, 0x10
jb 0x41335c
inc edx
mov ecx, dword [ebp - 0x9dc]
mov eax, ecx
cmp edx, 0x1000
jb 0x413352
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x9cc], 0
mov dword [ebp - 0x9c8], 0xf
mov byte [ebp - 0x9dc], 0
cmp esi, 0xffffffff
je 0x413386
mov dword [0], 0x2a
lea eax, [ebp - 0x9b8]
push eax
call fcn.00411050
add esp, 4
mov esi, eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [str.UV_GQR8]
mov dword [ebp - 0x2a4], ecx
mov cx, word [0x43fc58]
mov word [ebp - 0x2a0], cx
mov cl, byte [0x43fc5a]
mov byte [ebp - 0x29e], cl
xor edx, edx
mov dword [ebp - 0x3c], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x3c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x2a4], cl
inc edx
mov dword [ebp - 0x3c], edx
cmp edx, 7
jl 0x4133c5
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x460], 0xf
lea ecx, [ebp - 0x2a4]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413416
sub ecx, edx
push ecx
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x474]
call fcn.00401820
lea ecx, [ebp - 0x474]
cmp dword [ebp - 0x460], 0x10
mov edx, dword [ebp - 0x474]
cmovae ecx, edx
mov dword [ebp - 0x34], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x3c], eax
cmp dword [esi + 0x14], 0x10
jb 0x41345c
mov esi, dword [esi]
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp - 0x464]
cmp eax, dword [ebp - 0x3c]
ja 0x413540
test eax, eax
jne 0x413487
xor esi, esi
jmp 0x413543
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x454]
jmp 0x4132d1
mov edx, dword [ebp - 0x3c]
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x38], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x3c], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00421a20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x41353a
mov ecx, eax
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x464]
sub esi, 4
jb 0x4134d3
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4134dc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4134c2
cmp esi, 0xfffffffc
je 0x413821
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x413519
cmp esi, 0xfffffffd
je 0x413821
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x413519
cmp esi, 0xfffffffe
je 0x413821
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x413519
cmp esi, 0xffffffff
je 0x413821
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x413821
mov esi, dword [ebp - 0x24]
inc esi
mov eax, dword [ebp - 0x38]
sub eax, esi
push eax
push dword [ebp - 0x3c]
push esi
call fcn.00421a20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4134b2
mov edx, dword [ebp - 0x474]
or esi, 0xffffffff
mov eax, dword [ebp - 0x460]
cmp eax, 0x10
jb 0x413579
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x41356f
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push ecx
push edx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x460], 0xf
mov byte [ebp - 0x474], 0
mov edx, dword [ebp - 0x9a4]
cmp edx, 0x10
jb 0x4135ce
inc edx
mov ecx, dword [ebp - 0x9b8]
mov eax, ecx
cmp edx, 0x1000
jb 0x4135c4
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x9a8], 0
mov dword [ebp - 0x9a4], 0xf
mov byte [ebp - 0x9b8], 0
cmp esi, 0xffffffff
je 0x4135f8
mov dword [0], 0x2a
lea eax, [ebp - 0x9a0]
push eax
call fcn.00411050
add esp, 4
mov esi, eax
mov dword [ebp - 0x3c], eax
movq xmm0, qword [str.zRFGO]
movq qword [ebp - 0x39a], xmm0
mov ecx, dword [0x43fc64]
mov dword [ebp - 0x392], ecx
mov cx, word [0x43fc68]
mov word [ebp - 0x38e], cx
test ch, ch
je 0x41379a
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x413766
movaps xmm4, xmmword [0x4408c0]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43f550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
mov eax, dword [str.2222222222222222]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.zRFGO]
pxor xmm1, xmm0
movd dword [ebp - 0x39a], xmm1
movaps xmm2, xmmword [0x43f780]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x396]
pxor xmm1, xmm0
movd dword [ebp - 0x396], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [ebp - 0x24]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x33
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x39a], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x413766
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0xf
lea ecx, [ebp - 0x39a]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4137c1
sub ecx, edx
push ecx
lea eax, [ebp - 0x39a]
push eax
lea ecx, [ebp - 0x43c]
call fcn.00401820
lea ecx, [ebp - 0x43c]
cmp dword [ebp - 0x428], 0x10
mov edx, dword [ebp - 0x43c]
cmovae ecx, edx
mov dword [ebp - 0x34], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x2c], eax
cmp dword [esi + 0x14], 0x10
jb 0x413807
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp - 0x42c]
cmp eax, dword [ebp - 0x2c]
ja 0x4138ee
test eax, eax
jne 0x413832
xor esi, esi
jmp 0x4138f1
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x474]
jmp 0x413543
mov edx, dword [ebp - 0x2c]
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x38], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x2c], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00421a20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x4138e8
nop dword [eax]
mov ecx, eax
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x42c]
sub esi, 4
jb 0x413881
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41388a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x413870
cmp esi, 0xfffffffc
je 0x413b85
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4138c7
cmp esi, 0xfffffffd
je 0x413b85
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4138c7
cmp esi, 0xfffffffe
je 0x413b85
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4138c7
cmp esi, 0xffffffff
je 0x413b85
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x413b85
mov esi, dword [ebp - 0x24]
inc esi
mov eax, dword [ebp - 0x38]
sub eax, esi
push eax
push dword [ebp - 0x2c]
push esi
call fcn.00421a20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x413860
mov edx, dword [ebp - 0x43c]
or esi, 0xffffffff
mov eax, dword [ebp - 0x428]
cmp eax, 0x10
jb 0x413927
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x41391d
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push ecx
push edx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0xf
mov byte [ebp - 0x43c], 0
mov edx, dword [ebp - 0x98c]
cmp edx, 0x10
jb 0x41397c
inc edx
mov ecx, dword [ebp - 0x9a0]
mov eax, ecx
cmp edx, 0x1000
jb 0x413972
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x990], 0
mov dword [ebp - 0x98c], 0xf
mov byte [ebp - 0x9a0], 0
cmp esi, 0xffffffff
je 0x4139a6
mov dword [0], 0x2a
lea eax, [ebp - 0x2a78]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
mov esi, dword [ebp - 0x30]
or esi, 0x30
mov dword [ebp - 0x30], esi
mov ecx, dword [str.SIAGS7]
mov dword [ebp - 0x285], ecx
mov cx, word [0x43fc70]
mov word [ebp - 0x281], cx
test ch, ch
je 0x413a0e
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x285], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x4139e4
mov dword [ebp - 0x504], 0
mov dword [ebp - 0x4f4], 0
mov dword [ebp - 0x4f0], 0xf
lea ecx, [ebp - 0x285]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413a35
sub ecx, edx
push ecx
lea eax, [ebp - 0x285]
push eax
lea ecx, [ebp - 0x504]
call fcn.00401820
lea ecx, [ebp - 0x504]
cmp dword [ebp - 0x4f0], 0x10
cmovae ecx, dword [ebp - 0x504]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413a73
mov eax, dword [eax]
push dword [ebp - 0x4f4]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x413b96
lea eax, [ebp - 0x1c20]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0
mov dword [ebp - 0x30], esi
movq xmm0, qword [str.siags]
movq qword [ebp - 0x3f3], xmm0
mov cl, byte [0x43fc7c]
mov byte [ebp - 0x3eb], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax + eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x3f3], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 9
jl 0x413ad0
mov dword [ebp - 0x4ec], 0
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d8], 0xf
lea ecx, [ebp - 0x3f3]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413b21
sub ecx, edx
push ecx
lea eax, [ebp - 0x3f3]
push eax
lea ecx, [ebp - 0x4ec]
call fcn.00401820
lea ecx, [ebp - 0x4ec]
cmp dword [ebp - 0x4d8], 0x10
mov esi, dword [ebp - 0x4ec]
cmovae ecx, esi
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413b61
mov eax, dword [eax]
push dword [ebp - 0x4dc]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x413b9c
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x413ba3
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x43c]
jmp 0x4138f1
mov esi, dword [ebp - 0x4ec]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test al, al
jns 0x413c01
and eax, 0xffffff7f
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x4d8]
cmp ecx, 0x10
jb 0x413be6
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x413bd9
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push ecx
push esi
call fcn.00420b5a
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d8], 0xf
mov byte [ebp - 0x4ec], 0
test al, 0x40
je 0x413c16
and eax, 0xffffffbf
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x1c20]
call fcn.00401290
mov edx, dword [ebp - 0x4f0]
cmp edx, 0x10
jb 0x413c50
inc edx
mov ecx, dword [ebp - 0x504]
mov eax, ecx
cmp edx, 0x1000
jb 0x413c46
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x4f4], 0
mov dword [ebp - 0x4f0], 0xf
mov byte [ebp - 0x504], 0
mov esi, dword [ebp - 0x30]
and esi, 0xffffffcf
lea ecx, [ebp - 0x2a78]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x413c8c
mov dword [0], 0x2a
lea eax, [ebp - 0x2aa8]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x300
mov dword [ebp - 0x30], esi
mov ecx, dword [str.SWYX7]
mov dword [ebp - 0x28b], ecx
mov cx, word [0x43fc84]
mov word [ebp - 0x287], cx
test ch, ch
je 0x413cfa
xor edx, edx
mov dword [ebp - 0x2c], edx
nop word [eax + eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x28b], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x413cd0
mov dword [ebp - 0x534], 0
mov dword [ebp - 0x524], 0
mov dword [ebp - 0x520], 0xf
lea ecx, [ebp - 0x28b]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413d21
sub ecx, edx
push ecx
lea eax, [ebp - 0x28b]
push eax
lea ecx, [ebp - 0x534]
call fcn.00401820
lea ecx, [ebp - 0x534]
cmp dword [ebp - 0x520], 0x10
cmovae ecx, dword [ebp - 0x534]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413d5f
mov eax, dword [eax]
push dword [ebp - 0x524]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x413f8a
lea eax, [ebp - 0x2a90]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc00
mov dword [ebp - 0x30], esi
mov ecx, dword [str.g_qgeg9DGW5]
mov esi, dword [0x43fc8c]
mov dword [ebp - 0x2b3], ecx
mov dword [ebp - 0x2af], esi
cmp byte [0x43fc8f], 0
je 0x413eff
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x413ed5
movaps xmm4, xmmword [0x4408c0]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43f550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
mov eax, dword [str.2222222222222222]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x2b3], xmm1
movaps xmm2, xmmword [0x43f780]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, esi
pxor xmm1, xmm0
movd dword [ebp - 0x2af], xmm1
jmp 0x413eff
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x2b3], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 8
jl 0x413ed5
mov dword [ebp - 0x51c], 0
mov dword [ebp - 0x50c], 0
mov dword [ebp - 0x508], 0xf
lea ecx, [ebp - 0x2b3]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413f26
sub ecx, edx
push ecx
lea eax, [ebp - 0x2b3]
push eax
lea ecx, [ebp - 0x51c]
call fcn.00401820
lea ecx, [ebp - 0x51c]
cmp dword [ebp - 0x508], 0x10
mov esi, dword [ebp - 0x51c]
cmovae ecx, esi
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413f66
mov eax, dword [eax]
push dword [ebp - 0x50c]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x413f90
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x413f97
mov esi, dword [ebp - 0x51c]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x800
je 0x413ff8
and eax, 0xfffff7ff
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x508]
cmp ecx, 0x10
jb 0x413fdd
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x413fd0
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push ecx
push esi
call fcn.00420b5a
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x50c], 0
mov dword [ebp - 0x508], 0xf
mov byte [ebp - 0x51c], 0
test eax, 0x400
je 0x414012
and eax, 0xfffffbff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x2a90]
call fcn.00401290
mov edx, dword [ebp - 0x520]
cmp edx, 0x10
jb 0x41404c
inc edx
mov ecx, dword [ebp - 0x534]
mov eax, ecx
cmp edx, 0x1000
jb 0x414042
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x524], 0
mov dword [ebp - 0x520], 0xf
mov byte [ebp - 0x534], 0
mov esi, dword [ebp - 0x30]
and esi, 0xfffffcff
lea ecx, [ebp - 0x2aa8]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x41408b
mov dword [0], 0x2a
lea eax, [ebp - 0x2ad8]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x3000
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43fc90]
mov dword [ebp - 0xff], ecx
cmp byte [0x43fc93], 0
je 0x41418a
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x414160
movaps xmm3, xmmword [0x43f550]
movaps xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x4408c0]
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x4408c0]
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm3
mov eax, 5
movd xmm0, eax
psrad xmm2, xmm0
movaps xmm1, xmm2
mov eax, 0x1f
movd xmm0, eax
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [str.3333]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.2222222222222222]
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xff], xmm1
jmp 0x41418a
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xff], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 4
jl 0x414160
mov dword [ebp - 0x54c], 0
mov dword [ebp - 0x53c], 0
mov dword [ebp - 0x538], 0xf
lea ecx, [ebp - 0xff]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4141b1
sub ecx, edx
push ecx
lea eax, [ebp - 0xff]
push eax
lea ecx, [ebp - 0x54c]
call fcn.00401820
lea ecx, [ebp - 0x54c]
cmp dword [ebp - 0x538], 0x10
cmovae ecx, dword [ebp - 0x54c]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4141ef
mov eax, dword [eax]
push dword [ebp - 0x53c]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4142f8
lea eax, [ebp - 0x2ac0]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc000
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43fc94]
mov dword [ebp - 0x10e], ecx
mov cl, byte [0x43fc98]
mov byte [ebp - 0x10a], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x10e], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 5
jl 0x414243
mov dword [ebp - 0x4d4], 0
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0xf
lea ecx, [ebp - 0x10e]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414294
sub ecx, edx
push ecx
lea eax, [ebp - 0x10e]
push eax
lea ecx, [ebp - 0x4d4]
call fcn.00401820
lea ecx, [ebp - 0x4d4]
cmp dword [ebp - 0x4c0], 0x10
mov esi, dword [ebp - 0x4d4]
cmovae ecx, esi
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4142d4
mov eax, dword [eax]
push dword [ebp - 0x4c4]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4142fe
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x414305
mov esi, dword [ebp - 0x4d4]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x8000
je 0x414366
and eax, 0xffff7fff
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x4c0]
cmp ecx, 0x10
jb 0x41434b
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x41433e
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push ecx
push esi
call fcn.00420b5a
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0xf
mov byte [ebp - 0x4d4], 0
test eax, 0x4000
je 0x414380
and eax, 0xffffbfff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x2ac0]
call fcn.00401290
mov edx, dword [ebp - 0x538]
cmp edx, 0x10
jb 0x4143ba
inc edx
mov ecx, dword [ebp - 0x54c]
mov eax, ecx
cmp edx, 0x1000
jb 0x4143b0
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x53c], 0
mov dword [ebp - 0x538], 0xf
mov byte [ebp - 0x54c], 0
mov esi, dword [ebp - 0x30]
and esi, 0xffffcfff
lea ecx, [ebp - 0x2ad8]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x4143f9
mov dword [0], 0x2a
lea eax, [ebp - 0x2b08]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x30000
mov dword [ebp - 0x30], esi
mov ecx, dword [str.s_y5s_y]
mov dword [ebp - 0xc4], ecx
cmp byte [0x43fc9f], 0
je 0x4144fa
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x4144d0
movaps xmm3, xmmword [0x43f550]
movaps xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x4408c0]
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x4408c0]
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm3
mov eax, 5
movd xmm0, eax
psrad xmm2, xmm0
movaps xmm1, xmm2
mov eax, 0x1f
movd xmm0, eax
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [str.3333]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.2222222222222222]
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xc4], xmm1
jmp 0x4144fa
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xc4], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 4
jl 0x4144d0
mov dword [ebp - 0x57c], 0
mov dword [ebp - 0x56c], 0
mov dword [ebp - 0x568], 0xf
lea ecx, [ebp - 0xc4]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414521
sub ecx, edx
push ecx
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x57c]
call fcn.00401820
lea ecx, [ebp - 0x57c]
cmp dword [ebp - 0x568], 0x10
cmovae ecx, dword [ebp - 0x57c]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41455f
mov eax, dword [eax]
push dword [ebp - 0x56c]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414675
lea eax, [ebp - 0x2af0]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0000
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43fca0]
mov dword [ebp - 0x291], ecx
mov cx, word [0x43fca4]
mov word [ebp - 0x28d], cx
test ch, ch
je 0x4145ea
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x291], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x4145c0
mov dword [ebp - 0x564], 0
mov dword [ebp - 0x554], 0
mov dword [ebp - 0x550], 0xf
lea ecx, [ebp - 0x291]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414611
sub ecx, edx
push ecx
lea eax, [ebp - 0x291]
push eax
lea ecx, [ebp - 0x564]
call fcn.00401820
lea ecx, [ebp - 0x564]
cmp dword [ebp - 0x550], 0x10
mov esi, dword [ebp - 0x564]
cmovae ecx, esi
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414651
mov eax, dword [eax]
push dword [ebp - 0x554]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41467b
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x414682
mov esi, dword [ebp - 0x564]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x80000
je 0x4146e3
and eax, 0xfff7ffff
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x550]
cmp ecx, 0x10
jb 0x4146c8
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x4146bb
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push ecx
push esi
call fcn.00420b5a
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x554], 0
mov dword [ebp - 0x550], 0xf
mov byte [ebp - 0x564], 0
test eax, 0x40000
je 0x4146fd
and eax, 0xfffbffff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x2af0]
call fcn.00401290
mov edx, dword [ebp - 0x568]
cmp edx, 0x10
jb 0x414737
inc edx
mov ecx, dword [ebp - 0x57c]
mov eax, ecx
cmp edx, 0x1000
jb 0x41472d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x56c], 0
mov dword [ebp - 0x568], 0xf
mov byte [ebp - 0x57c], 0
mov esi, dword [ebp - 0x30]
and esi, 0xfffcffff
lea ecx, [ebp - 0x2b08]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414776
mov dword [0], 0x2a
lea eax, [ebp - 0xc30]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x300000
mov ecx, dword [str.SQVL6]
mov dword [ebp - 0x113], ecx
mov cl, byte [0x43fcac]
mov byte [ebp - 0x10f], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax + eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x113], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 5
jl 0x4147b0
mov dword [ebp - 0x594], 0
mov dword [ebp - 0x584], 0
mov dword [ebp - 0x580], 0xf
lea ecx, [ebp - 0x113]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414801
sub ecx, edx
push ecx
lea eax, [ebp - 0x113]
push eax
lea ecx, [ebp - 0x594]
call fcn.00401820
lea ecx, [ebp - 0x594]
cmp dword [ebp - 0x580], 0x10
cmovae ecx, dword [ebp - 0x594]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41483f
mov eax, dword [eax]
push dword [ebp - 0x584]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414a26
lea eax, [ebp - 0xc18]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc00000
mov ecx, dword [str.sqvleg9ZZO7]
mov dword [ebp - 0xa8], ecx
mov eax, dword [0x43fcb4]
mov dword [ebp - 0xa4], eax
cmp byte [0x43fcb7], 0
je 0x4149df
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x4149b5
movaps xmm4, xmmword [0x4408c0]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43f550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
mov eax, dword [str.2222222222222222]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xa8], xmm1
movaps xmm2, xmmword [0x43f780]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x43fcb4]
pxor xmm1, xmm0
movd dword [ebp - 0xa4], xmm1
jmp 0x4149df
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xa8], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 8
jl 0x4149b5
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0xc00]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x4149ff
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414a0d
mov ecx, dword [ecx]
push dword [ebp - 0x38]
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x25], 1
jne 0x414a2a
mov byte [ebp - 0x25], 0
test esi, 0x800000
je 0x414a43
and esi, 0xff7fffff
lea ecx, [ebp - 0xc00]
call fcn.00401290
test esi, 0x400000
je 0x414a5c
and esi, 0xffbfffff
lea ecx, [ebp - 0xc18]
call fcn.00401290
mov edx, dword [ebp - 0x580]
cmp edx, 0x10
jb 0x414a96
inc edx
mov ecx, dword [ebp - 0x594]
mov eax, ecx
cmp edx, 0x1000
jb 0x414a8c
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x584], 0
mov dword [ebp - 0x580], 0xf
mov byte [ebp - 0x594], 0
and esi, 0xffcfffff
lea ecx, [ebp - 0xc30]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414ad2
mov dword [0], 0x2a
lea eax, [ebp - 0xc78]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x3000000
mov ecx, dword [0x43fcb8]
mov dword [ebp - 0x297], ecx
mov cx, word [0x43fcbc]
mov word [ebp - 0x293], cx
test ch, ch
je 0x414b3a
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x297], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x414b10
mov dword [ebp - 0x5ac], 0
mov dword [ebp - 0x59c], 0
mov dword [ebp - 0x598], 0xf
lea ecx, [ebp - 0x297]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414b61
sub ecx, edx
push ecx
lea eax, [ebp - 0x297]
push eax
lea ecx, [ebp - 0x5ac]
call fcn.00401820
lea ecx, [ebp - 0x5ac]
cmp dword [ebp - 0x598], 0x10
cmovae ecx, dword [ebp - 0x5ac]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414b9f
mov eax, dword [eax]
push dword [ebp - 0x59c]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414c65
lea eax, [ebp - 0xc60]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc000000
movq xmm0, qword [str.zzo]
movq qword [ebp - 0xf4], xmm0
mov cl, byte [0x43fcc8]
mov byte [ebp - 0xec], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xf4], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 9
jl 0x414bf4
lea eax, [ebp - 0xf4]
push eax
lea ecx, [ebp - 0xc48]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x414c3e
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414c4c
mov ecx, dword [ecx]
push dword [ebp - 0x38]
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x25], 1
jne 0x414c69
mov byte [ebp - 0x25], 0
test esi, 0x8000000
je 0x414c82
and esi, 0xf7ffffff
lea ecx, [ebp - 0xc48]
call fcn.00401290
test esi, 0x4000000
je 0x414c9b
and esi, 0xfbffffff
lea ecx, [ebp - 0xc60]
call fcn.00401290
mov edx, dword [ebp - 0x598]
cmp edx, 0x10
jb 0x414cd5
inc edx
mov ecx, dword [ebp - 0x5ac]
mov eax, ecx
cmp edx, 0x1000
jb 0x414ccb
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x59c], 0
mov dword [ebp - 0x598], 0xf
mov byte [ebp - 0x5ac], 0
and esi, 0xfcffffff
lea ecx, [ebp - 0xc78]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414d11
mov dword [0], 0x2a
lea eax, [ebp - 0xcc0]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x30000000
mov ecx, dword [str.zFFB7]
mov dword [ebp - 0x29d], ecx
mov cx, word [0x43fcd0]
mov word [ebp - 0x299], cx
test ch, ch
je 0x414d7a
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x29d], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x414d50
mov dword [ebp - 0x5c4], 0
mov dword [ebp - 0x5b4], 0
mov dword [ebp - 0x5b0], 0xf
lea ecx, [ebp - 0x29d]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414da1
sub ecx, edx
push ecx
lea eax, [ebp - 0x29d]
push eax
lea ecx, [ebp - 0x5c4]
call fcn.00401820
lea ecx, [ebp - 0x5c4]
cmp dword [ebp - 0x5b0], 0x10
cmovae ecx, dword [ebp - 0x5c4]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414ddf
mov eax, dword [eax]
push dword [ebp - 0x5b4]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414ea5
lea eax, [ebp - 0xca8]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0000000
movq xmm0, qword [str.zffb]
movq qword [ebp - 0xf4], xmm0
mov cl, byte [0x43fcdc]
mov byte [ebp - 0xec], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xf4], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 9
jl 0x414e34
lea eax, [ebp - 0xf4]
push eax
lea ecx, [ebp - 0xc90]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x414e7e
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414e8c
mov ecx, dword [ecx]
push dword [ebp - 0x38]
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x25], 1
jne 0x414ea9
mov byte [ebp - 0x25], 0
test esi, esi
jns 0x414ebe
and esi, 0x7fffffff
lea ecx, [ebp - 0xc90]
call fcn.00401290
test esi, 0x40000000
je 0x414ed1
lea ecx, [ebp - 0xca8]
call fcn.00401290
mov edx, dword [ebp - 0x5b0]
cmp edx, 0x10
jb 0x414f0b
inc edx
mov ecx, dword [ebp - 0x5c4]
mov eax, ecx
cmp edx, 0x1000
jb 0x414f01
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x5b4], 0
mov dword [ebp - 0x5b0], 0xf
mov byte [ebp - 0x5c4], 0
lea ecx, [ebp - 0xcc0]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414f41
mov dword [0], 0x2a
lea eax, [ebp - 0xd08]
push eax
call fcn.00411050
add esp, 4
mov esi, eax
mov dword [ebp - 0x3c], eax
mov ecx, dword [str.erxse8]
mov dword [ebp - 0x2ab], ecx
mov cx, word [0x43fce4]
mov word [ebp - 0x2a7], cx
mov cl, byte [0x43fce6]
mov byte [ebp - 0x2a5], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x2ab], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 7
jl 0x414f80
mov dword [ebp - 0x5dc], 0
mov dword [ebp - 0x5cc], 0
mov dword [ebp - 0x5c8], 0xf
lea ecx, [ebp - 0x2ab]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414fd1
sub ecx, edx
push ecx
lea eax, [ebp - 0x2ab]
push eax
lea ecx, [ebp - 0x5dc]
call fcn.00401820
lea eax, [ebp - 0x5dc]
cmp dword [ebp - 0x5c8], 0x10
cmovae eax, dword [ebp - 0x5dc]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x41500f
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
mov esi, 3
mov dword [ebp - 0x30], esi
push dword [ebp - 0x5cc]
push eax
push 0
push ecx
push dword [ebp - 0x3c]
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4150ea
lea eax, [ebp - 0xcf0]
push eax
call fcn.00410ee0
add esp, 4
mov esi, eax
mov dword [ebp - 0x3c], eax
movq xmm0, qword [str.erxse]
movq qword [ebp - 0x2bd], xmm0
mov cx, word [0x43fcf0]
mov word [ebp - 0x2b5], cx
test ch, ch
je 0x41509a
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x2bd], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 0xa
jl 0x415070
lea eax, [ebp - 0x2bd]
push eax
lea ecx, [ebp - 0xcd8]
call fcn.00404740
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4150b7
mov eax, dword [eax]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x4150c5
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
mov esi, 0xf
mov dword [ebp - 0x30], esi
push edx
push eax
push 0
push ecx
push dword [ebp - 0x3c]
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4150ea
mov byte [ebp - 0x25], 1
mov eax, esi
jmp 0x4150f5
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test al, 8
je 0x415109
and eax, 0xfffffff7
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xcd8]
call fcn.00401290
mov eax, dword [ebp - 0x30]
test al, 4
je 0x41511e
and eax, 0xfffffffb
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xcf0]
call fcn.00401290
mov edx, dword [ebp - 0x5c8]
cmp edx, 0x10
jb 0x415158
inc edx
mov ecx, dword [ebp - 0x5dc]
mov eax, ecx
cmp edx, 0x1000
jb 0x41514e
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x5cc], 0
mov dword [ebp - 0x5c8], 0xf
mov byte [ebp - 0x5dc], 0
mov esi, dword [ebp - 0x30]
and esi, 0xfffffffc
lea ecx, [ebp - 0xd08]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x415194
mov dword [0], 0x2a
lea eax, [ebp - 0xd50]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x30
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43fcf4]
mov dword [ebp - 0x109], ecx
mov cl, byte [0x43fcf8]
mov byte [ebp - 0x105], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x109], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 5
jl 0x4151d0
mov dword [ebp - 0x5f4], 0
mov dword [ebp - 0x5e4], 0
mov dword [ebp - 0x5e0], 0xf
lea ecx, [ebp - 0x109]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415221
sub ecx, edx
push ecx
lea eax, [ebp - 0x109]
push eax
lea ecx, [ebp - 0x5f4]
call fcn.00401820
lea ecx, [ebp - 0x5f4]
cmp dword [ebp - 0x5e0], 0x10
cmovae ecx, dword [ebp - 0x5f4]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41525f
mov eax, dword [eax]
push dword [ebp - 0x5e4]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415449
lea eax, [ebp - 0xd38]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0
mov dword [ebp - 0x30], esi
mov ecx, dword [str.szteg9sWYXKMHZHRL_]
mov esi, dword [0x43fd00]
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xa4], esi
cmp byte [0x43fd03], 0
je 0x4153ff
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x4153d5
movaps xmm4, xmmword [0x4408c0]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43f550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
mov eax, dword [str.2222222222222222]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xa8], xmm1
movaps xmm2, xmmword [0x43f780]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, esi
pxor xmm1, xmm0
movd dword [ebp - 0xa4], xmm1
jmp 0x4153ff
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xa8], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 8
jl 0x4153d5
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0xd20]
call fcn.00404740
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41541c
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x41542a
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415449
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x415450
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test al, al
jns 0x41546a
and eax, 0xffffff7f
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd20]
call fcn.00401290
mov eax, dword [ebp - 0x30]
test al, 0x40
je 0x41547f
and eax, 0xffffffbf
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd38]
call fcn.00401290
mov edx, dword [ebp - 0x5e0]
cmp edx, 0x10
jb 0x4154b9
inc edx
mov ecx, dword [ebp - 0x5f4]
mov eax, ecx
cmp edx, 0x1000
jb 0x4154af
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x5e4], 0
mov dword [ebp - 0x5e0], 0xf
mov byte [ebp - 0x5f4], 0
mov esi, dword [ebp - 0x30]
and esi, 0xffffffcf
lea ecx, [ebp - 0xd50]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x4154f5
mov dword [0], 0x2a
lea eax, [ebp - 0xd98]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x300
mov dword [ebp - 0x30], esi
movq xmm0, qword [0x43fd04]
movq qword [ebp - 0x3b6], xmm0
mov ecx, dword [0x43fd0c]
mov dword [ebp - 0x3ae], ecx
mov cx, word [0x43fd10]
mov word [ebp - 0x3aa], cx
test ch, ch
je 0x4156a4
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x415670
movaps xmm4, xmmword [0x4408c0]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43f550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
mov eax, dword [str.2222222222222222]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x43fd04]
pxor xmm1, xmm0
movd dword [ebp - 0x3b6], xmm1
movaps xmm2, xmmword [0x43f780]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x3b2]
pxor xmm1, xmm0
movd dword [ebp - 0x3b2], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
nop word [eax + eax]
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [ebp - 0x24]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x33
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x3b6], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x415670
mov dword [ebp - 0x60c], 0
mov dword [ebp - 0x5fc], 0
mov dword [ebp - 0x5f8], 0xf
lea ecx, [ebp - 0x3b6]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4156d0
sub ecx, edx
push ecx
lea eax, [ebp - 0x3b6]
push eax
lea ecx, [ebp - 0x60c]
call fcn.00401820
lea ecx, [ebp - 0x60c]
cmp dword [ebp - 0x5f8], 0x10
cmovae ecx, dword [ebp - 0x60c]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41570e
mov eax, dword [eax]
push dword [ebp - 0x5fc]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4157e4
lea eax, [ebp - 0xd80]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc00
mov dword [ebp - 0x30], esi
mov ecx, dword [str.aZYZX7]
mov dword [ebp - 0xae], ecx
mov cx, word [0x43fd18]
mov word [ebp - 0xaa], cx
test ch, ch
je 0x41579a
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax + eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xae], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x415770
lea eax, [ebp - 0xae]
push eax
lea ecx, [ebp - 0xd68]
call fcn.00404740
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4157b7
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x4157c5
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4157e4
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x4157eb
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x800
je 0x415808
and eax, 0xfffff7ff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd68]
call fcn.00401290
mov eax, dword [ebp - 0x30]
test eax, 0x400
je 0x415822
and eax, 0xfffffbff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd80]
call fcn.00401290
mov edx, dword [ebp - 0x5f8]
cmp edx, 0x10
jb 0x41585c
inc edx
mov ecx, dword [ebp - 0x60c]
mov eax, ecx
cmp edx, 0x1000
jb 0x415852
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x5fc], 0
mov dword [ebp - 0x5f8], 0xf
mov byte [ebp - 0x60c], 0
mov esi, dword [ebp - 0x30]
and esi, 0xfffffcff
lea ecx, [ebp - 0xd98]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x41589b
mov dword [0], 0x2a
lea eax, [ebp - 0xde0]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x3000
mov dword [ebp - 0x30], esi
movq xmm0, qword [str.sWYXKMHZHRL_]
movq qword [ebp - 0x3a8], xmm0
mov ecx, dword [0x43fd24]
mov dword [ebp - 0x3a0], ecx
mov cx, word [0x43fd28]
mov word [ebp - 0x39c], cx
test ch, ch
je 0x415a44
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x415a10
movaps xmm4, xmmword [0x4408c0]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43f550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
mov eax, dword [str.2222222222222222]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.sWYXKMHZHRL_]
pxor xmm1, xmm0
movd dword [ebp - 0x3a8], xmm1
movaps xmm2, xmmword [0x43f780]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.3333]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x3a4]
pxor xmm1, xmm0
movd dword [ebp - 0x3a4], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [ebp - 0x24]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x33
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x3a8], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x415a10
mov dword [ebp - 0x624], 0
mov dword [ebp - 0x614], 0
mov dword [ebp - 0x610], 0xf
lea ecx, [ebp - 0x3a8]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415a70
sub ecx, edx
push ecx
lea eax, [ebp - 0x3a8]
push eax
lea ecx, [ebp - 0x624]
call fcn.00401820
lea ecx, [ebp - 0x624]
cmp dword [ebp - 0x610], 0x10
cmovae ecx, dword [ebp - 0x624]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x415aae
mov eax, dword [eax]
push dword [ebp - 0x614]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415b84
lea eax, [ebp - 0xdc8]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc000
mov dword [ebp - 0x30], esi
mov ecx, dword [str.fvgase8]
mov dword [ebp - 0xfb], ecx
mov cx, word [0x43fd30]
mov word [ebp - 0xf7], cx
mov cl, byte [0x43fd32]
mov byte [ebp - 0xf5], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0xfb], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 7
jl 0x415b10
lea eax, [ebp - 0xfb]
push eax
lea ecx, [ebp - 0xdb0]
call fcn.00404740
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x415b57
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x415b65
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415b84
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x415b8b
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x8000
je 0x415ba8
and eax, 0xffff7fff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xdb0]
call fcn.00401290
mov eax, dword [ebp - 0x30]
test eax, 0x4000
je 0x415bc2
and eax, 0xffffbfff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xdc8]
call fcn.00401290
mov edx, dword [ebp - 0x610]
cmp edx, 0x10
jb 0x415bfc
inc edx
mov ecx, dword [ebp - 0x624]
mov eax, ecx
cmp edx, 0x1000
jb 0x415bf2
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f40f
push edx
push ecx
call fcn.00420b5a
add esp, 8
mov dword [ebp - 0x614], 0
mov dword [ebp - 0x610], 0xf
mov byte [ebp - 0x624], 0
mov esi, dword [ebp - 0x30]
and esi, 0xffffcfff
lea ecx, [ebp - 0xde0]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x415c3b
mov dword [0], 0x2a
lea eax, [ebp - 0xe40]
push eax
call fcn.00411050
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x30000
mov ecx, dword [str.s_ZT6]
mov dword [ebp - 0x5c], ecx
mov cl, byte [0x43fd38]
mov byte [ebp - 0x58], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop word [eax + eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x33
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x5c], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 5
jl 0x415c70
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0xe28]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x415cb4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x415cc2
mov ecx, dword [ecx]
push dword [ebp - 0x38]
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415ea6
lea eax, [ebp - 0xe10]
push eax
call fcn.00410ee0
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0000
mov ecx, dword [str.szteg9zrfqavjf]
mov dword [ebp - 0xa8], ecx
mov eax, dword [0x43fd40]
mov dword [ebp - 0xa4], eax
cmp byte [0x43fd43], 0
je 0x415e5f
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x415e35
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0xdf8]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x415e7f
mov byte [ebp - 0x25], 0
test esi, 0x80000
je 0x415ec3
and esi, 0xfff7ffff
lea ecx, [ebp - 0xdf8]
call fcn.00401290
test esi, 0x40000
je 0x415ed6
call fcn.00425032
push edi
lea ecx, [ebp - 0xaa8]
call fcn.00405610
push 0x44d80c
lea eax, [ebp - 0xaa8]
push eax
call fcn.004219b0
push edi
lea ecx, [ebp - 0xa9c]
call fcn.00405610
push 0x44d80c
lea eax, [ebp - 0xa9c]
push eax
call fcn.004219b0
push edi
lea ecx, [ebp - 0x2820]
call fcn.00404740
mov esi, eax
lea eax, [ebp - 0x3d0]
push eax
lea ecx, [ebp - 0x2808]
call fcn.00408b80
push esi
push eax
lea eax, [ebp - 0x27f0]
push eax
call fcn.004072e0
push dword [ebp - 0xc0]
push eax
lea eax, [ebp - 0x27d8]
push eax
call fcn.004072e0
push dword [ebp - 0xd0]
push eax
lea eax, [ebp - 0x27c0]
push eax
call fcn.004072e0
push dword [ebp - 0xcc]
push eax
lea eax, [ebp - 0x27a8]
push eax
call fcn.004072e0
push dword [ebp - 0xc8]
push eax
lea eax, [ebp - 0x2790]
push eax
call fcn.004072e0
push dword [ebp - 0x104]
push eax
lea eax, [ebp - 0x2778]
push eax
call fcn.004072e0
add esp, 0x48
push dword [ebp - 0xbc]
push eax
lea eax, [ebp - 0x2760]
push eax
call fcn.004072e0
push dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0x2748]
push eax
call fcn.004072e0
push dword [ebp - 0xb4]
push eax
lea eax, [ebp - 0x2730]
push eax
call fcn.004072e0
push dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x2718]
push eax
call fcn.004072e0
push dword [ebp - 0x38]
push eax
lea eax, [ebp - 0x2700]
push eax
call fcn.004072e0
push dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x26e8]
push eax
call fcn.004072e0
add esp, 0x48
mov ecx, eax
call fcn.004062b0
push eax
lea eax, [ebp - 0x26d0]
push eax
call fcn.00405880
add esp, 8
lea ecx, [ebp - 0x26d0]
call fcn.00401290
lea ecx, [ebp - 0x26e8]
call fcn.00401290
lea ecx, [ebp - 0x2700]
call fcn.00401290
lea ecx, [ebp - 0x2718]
call fcn.00401290
lea ecx, [ebp - 0x2730]
call fcn.00401290
lea ecx, [ebp - 0x2748]
call fcn.00401290
lea ecx, [ebp - 0x2760]
call fcn.00401290
lea ecx, [ebp - 0x2778]
call fcn.00401290
lea ecx, [ebp - 0x2790]
call fcn.00401290
lea ecx, [ebp - 0x27a8]
call fcn.00401290
lea ecx, [ebp - 0x27c0]
call fcn.00401290
lea ecx, [ebp - 0x27d8]
call fcn.00401290
lea ecx, [ebp - 0x27f0]
call fcn.00401290
lea ecx, [ebp - 0x2808]
call fcn.00401290
lea ecx, [ebp - 0x2820]
call fcn.00401290
lea ecx, [ebp - 0x2838]
call fcn.00401290
lea ecx, [ebp - 0x2850]
call fcn.00401290
lea ecx, [ebp - 0x2868]
call fcn.00401290
lea ecx, [ebp - 0x2880]
call fcn.00401290
lea ecx, [ebp - 0x2898]
call fcn.00401290
lea ecx, [ebp - 0x28b0]
call fcn.00401290
lea ecx, [ebp - 0x28c8]
call fcn.00401290
lea ecx, [ebp - 0x28e0]
call fcn.00401290
lea ecx, [ebp - 0x28f8]
call fcn.00401290
lea ecx, [ebp - 0x2910]
call fcn.00401290
lea ecx, [ebp - 0x2928]
call fcn.00401290
lea ecx, [ebp - 0x2940]
call fcn.00401290
lea ecx, [ebp - 0x2958]
call fcn.00401290
lea ecx, [ebp - 0x2970]
call fcn.00401290
lea ecx, [ebp - 0x2988]
call fcn.00401290
lea ecx, [ebp - 0x29a0]
call fcn.00401290
lea ecx, [ebp - 0x29b8]
call fcn.00401290
lea ecx, [ebp - 0x29d0]
call fcn.00401290
lea ecx, [ebp - 0x29e8]
call fcn.00401290
lea ecx, [ebp - 0x2a00]
call fcn.00401290
lea ecx, [ebp - 0x2a18]
call fcn.00401290
lea ecx, [ebp - 0x2a30]
call fcn.00401290
lea ecx, [ebp - 0x2a48]
call fcn.00401290
lea ecx, [ebp - 0x2a60]
call fcn.00401290
lea eax, [ebp - 0xac0]
push eax
call fcn.0040bbe0
add esp, 4
push 0
call fcn.00426ce2
int3