Function at 0x4126c0
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 0x43dc00
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
sub esp, 0xc
mov eax, 0x2b44
call fcn.00420510
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x5c], 0
movups xmm0, xmmword [0x43ebac]
movups xmmword [ebp - 0xa89], xmm0
movups xmm0, xmmword [0x43ebbc]
movups xmmword [ebp - 0xa79], xmm0
movups xmm0, xmmword [0x43ebcc]
movups xmmword [ebp - 0xa69], xmm0
movq xmm0, qword [0x43ebdc]
movq qword [ebp - 0xa59], xmm0
mov al, byte [0x43ebe4]
mov byte [ebp - 0xa51], al
xor edx, edx
mov dword [ebp - 0xcc], edx
mov edi, dword [0x44f534]
lea esi, [edx + 4]
cmp edi, 2
jl 0x4128b0
movaps xmm4, xmmword [0x43e550]
movaps xmm3, xmmword [0x43f900]
movd xmm5, esi
movaps xmm6, xmmword [str.2222]
mov ecx, 0x1f
movd xmm7, ecx
movaps xmm0, xmmword [str.4444444444444444]
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
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 [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa89]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa89], 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
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 [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa85]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa85], xmm1
add edx, 8
cmp edx, 0x38
jl 0x4127a0
mov dword [ebp - 0xcc], edx
cmp edx, 0x39
jge 0x4128e7
nop
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x32
mov edx, dword [ebp - 0xcc]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0xa89], cl
inc edx
mov dword [ebp - 0xcc], edx
cmp edx, 0x39
jl 0x4128b0
mov dword [ebp - 0x808], 0
mov dword [ebp - 0x7f8], 0
mov dword [ebp - 0x7f4], 0xf
lea ecx, [ebp - 0xa89]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412910
sub ecx, edx
push ecx
lea eax, [ebp - 0xa89]
push eax
lea ecx, [ebp - 0x808]
call fcn.00401820
lea eax, [ebp - 0x808]
push eax
call fcn.00409da0
add esp, 4
mov byte [ebp - 0x25], al
mov edx, dword [ebp - 0x7f4]
cmp edx, 0x10
jb 0x41297b
inc edx
mov ecx, dword [ebp - 0x808]
mov eax, ecx
cmp edx, 0x1000
jb 0x41296e
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov al, byte [ebp - 0x25]
mov dword [ebp - 0x7f8], 0
mov dword [ebp - 0x7f4], 0xf
mov byte [ebp - 0x808], 0
test al, al
je 0x4129a4
mov dword [0], 0x2a
movups xmm0, xmmword [0x43ebe8]
movups xmmword [ebp - 0x94d], xmm0
movups xmm0, xmmword [0x43ebf8]
movups xmmword [ebp - 0x93d], xmm0
movups xmm0, xmmword [0x43ec08]
movups xmmword [ebp - 0x92d], xmm0
mov ax, word [0x43ec18]
mov word [ebp - 0x91d], ax
mov al, byte [0x43ec1a]
mov byte [ebp - 0x91b], al
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x412b40
movaps xmm4, xmmword [0x43e550]
movaps xmm3, xmmword [0x43f900]
movd xmm5, esi
movaps xmm6, xmmword [str.2222]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.4444444444444444]
movaps xmmword [ebp - 0x70], xmm0
mov ecx, dword [ebp - 0x70]
nop dword [eax]
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
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 [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x94d]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x94d], 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
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 [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x949]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x949], xmm1
add edx, 8
cmp edx, 0x30
jl 0x412a30
mov dword [ebp - 0x24], edx
cmp edx, 0x33
jge 0x412b71
nop dword [eax + eax]
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x32
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x94d], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0x33
jl 0x412b40
mov dword [ebp - 0x838], 0
mov dword [ebp - 0x828], 0
mov dword [ebp - 0x824], 0xf
lea ecx, [ebp - 0x94d]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412b98
sub ecx, edx
push ecx
lea eax, [ebp - 0x94d]
push eax
lea ecx, [ebp - 0x838]
call fcn.00401820
mov esi, 1
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x838]
push eax
call fcn.00409da0
add esp, 4
test al, al
je 0x412faa
movups xmm0, xmmword [0x43ec1c]
movups xmmword [ebp - 0xa20], xmm0
movups xmm0, xmmword [0x43ec2c]
movups xmmword [ebp - 0xa10], xmm0
movups xmm0, xmmword [0x43ec3c]
movups xmmword [ebp - 0xa00], xmm0
mov eax, dword [0x43ec4c]
mov dword [ebp - 0x9f0], eax
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x412d60
movaps xmm4, xmmword [0x43e550]
movaps xmm3, xmmword [0x43f900]
mov eax, 4
movd xmm5, eax
movaps xmm6, xmmword [str.2222]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.4444444444444444]
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
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 [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa20]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa20], 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
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 [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa1c]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa1c], xmm1
add edx, 8
cmp edx, 0x30
jl 0x412c50
mov dword [ebp - 0x24], edx
cmp edx, 0x34
jge 0x412d91
nop dword [eax + eax]
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x32
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0xa20], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0x34
jl 0x412d60
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x810], 0
mov dword [ebp - 0x80c], 0xf
lea ecx, [ebp - 0xa20]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412db8
sub ecx, edx
push ecx
lea eax, [ebp - 0xa20]
push eax
lea ecx, [ebp - 0x820]
call fcn.00401820
mov esi, 3
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x820]
push eax
call fcn.00409da0
add esp, 4
test al, al
je 0x412faa
lea eax, [ebp - 0x974]
push eax
call fcn.00411090
add esp, 4
mov esi, eax
mov dword [ebp - 0x30], eax
mov ecx, dword [0x43ec50]
mov dword [ebp - 0x132], ecx
mov cx, word [0x43ec54]
mov word [ebp - 0x12e], cx
test ch, ch
je 0x412e5a
xor edx, edx
mov dword [ebp - 0x24], edx
nop word [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x132], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x412e30
mov dword [ebp - 0x380], 0
mov dword [ebp - 0x370], 0
mov dword [ebp - 0x36c], 0xf
lea ecx, [ebp - 0x132]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412e81
sub ecx, edx
push ecx
lea eax, [ebp - 0x132]
push eax
lea ecx, [ebp - 0x380]
call fcn.00401820
lea edx, [ebp - 0x380]
cmp dword [ebp - 0x36c], 0x10
mov ecx, dword [ebp - 0x380]
cmovae edx, ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x14], 0x10
jb 0x412ec7
mov esi, dword [esi]
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x370]
cmp eax, dword [ebp - 0x24]
ja 0x412f86
test eax, eax
jne 0x412ee4
mov eax, 0xf
jmp 0x412fb3
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.00421360
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x412f80
nop dword [eax + eax]
mov ecx, eax
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x370]
sub esi, 4
jb 0x412f31
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x412f36
add ecx, 4
add edx, 4
sub esi, 4
jae 0x412f20
cmp esi, 0xfffffffc
je 0x412f91
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x412f63
cmp esi, 0xfffffffd
je 0x412f91
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x412f63
cmp esi, 0xfffffffe
je 0x412f91
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x412f63
cmp esi, 0xffffffff
je 0x412f91
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x412f91
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.00421360
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x412f10
mov ecx, dword [ebp - 0x380]
mov byte [ebp - 0x25], 1
mov eax, 0xf
jmp 0x412fbb
mov eax, 0xf
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x380]
je 0x412fb3
mov byte [ebp - 0x25], 1
jmp 0x412fbb
mov ecx, dword [ebp - 0x380]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x25], 0
test al, 8
je 0x413013
and eax, 0xfffffff7
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x36c]
cmp edx, 0x10
jb 0x412ff8
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412feb
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x370], 0
mov dword [ebp - 0x36c], 0xf
mov byte [ebp - 0x380], 0
test al, 4
je 0x413075
and eax, 0xfffffffb
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x960]
cmp edx, 0x10
jb 0x41305a
inc edx
mov ecx, dword [ebp - 0x974]
mov eax, ecx
cmp edx, 0x1000
jb 0x41304d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x964], 0
mov dword [ebp - 0x960], 0xf
mov byte [ebp - 0x974], 0
test al, 2
je 0x4130d7
and eax, 0xfffffffd
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x80c]
cmp edx, 0x10
jb 0x4130bc
inc edx
mov ecx, dword [ebp - 0x820]
mov eax, ecx
cmp edx, 0x1000
jb 0x4130af
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x810], 0
mov dword [ebp - 0x80c], 0xf
mov byte [ebp - 0x820], 0
and eax, 0xfffffffe
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x824]
cmp edx, 0x10
jb 0x413117
inc edx
mov ecx, dword [ebp - 0x838]
mov eax, ecx
cmp edx, 0x1000
jb 0x41310d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x828], 0
mov dword [ebp - 0x824], 0xf
mov byte [ebp - 0x838], 0
cmp byte [ebp - 0x25], 0
je 0x413142
mov dword [0], 0x2a
push 1
push str._a_z_8_
lea ecx, [ebp - 0xba8]
call fcn.004089c0
push 1
push str._A_Z_8_
lea ecx, [ebp - 0xbbc]
call fcn.004089c0
push 1
push str.d6_
lea ecx, [ebp - 0xbd0]
call fcn.004089c0
lea eax, [ebp - 0x98c]
push eax
call fcn.00411090
add esp, 4
mov esi, eax
mov dword [ebp - 0x3c], eax
movq xmm0, qword [str.dTC_]
movq qword [ebp - 0x41b], xmm0
mov cx, word [0x43ec60]
mov word [ebp - 0x413], cx
mov cl, byte [0x43ec62]
mov byte [ebp - 0x411], cl
xor edx, edx
mov dword [ebp - 0x24], edx
nop dword [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x41b], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xb
jl 0x4131c0
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0xf
lea ecx, [ebp - 0x41b]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413211
sub ecx, edx
push ecx
lea eax, [ebp - 0x41b]
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 - 0x38], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x14], 0x10
jb 0x413257
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp - 0x42c]
cmp eax, dword [ebp - 0x24]
ja 0x41332e
test eax, eax
jne 0x413271
xor esi, esi
jmp 0x413331
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.00421360
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x413328
nop dword [eax]
mov ecx, eax
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x42c]
sub esi, 4
jb 0x4132c1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4132ca
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4132b0
cmp esi, 0xfffffffc
je 0x4134d6
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x413307
cmp esi, 0xfffffffd
je 0x4134d6
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x413307
cmp esi, 0xfffffffe
je 0x4134d6
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x413307
cmp esi, 0xffffffff
je 0x4134d6
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4134d6
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.00421360
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4132a0
mov edx, dword [ebp - 0x43c]
or esi, 0xffffffff
mov eax, dword [ebp - 0x428]
cmp eax, 0x10
jb 0x413367
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x41335d
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push ecx
push edx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0xf
mov byte [ebp - 0x43c], 0
mov edx, dword [ebp - 0x978]
cmp edx, 0x10
jb 0x4133bc
inc edx
mov ecx, dword [ebp - 0x98c]
mov eax, ecx
cmp edx, 0x1000
jb 0x4133b2
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x97c], 0
mov dword [ebp - 0x978], 0xf
mov byte [ebp - 0x98c], 0
cmp esi, 0xffffffff
je 0x4133e6
mov dword [0], 0x2a
lea eax, [ebp - 0x9a4]
push eax
call fcn.00411090
add esp, 4
mov esi, eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [str.SPYE_:]
mov dword [ebp - 0x197], ecx
mov cx, word [0x43ec68]
mov word [ebp - 0x193], cx
mov cl, byte [0x43ec6a]
mov byte [ebp - 0x191], cl
xor edx, edx
mov dword [ebp - 0x3c], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x3c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x197], cl
inc edx
mov dword [ebp - 0x3c], edx
cmp edx, 7
jl 0x413425
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 0xf
lea ecx, [ebp - 0x197]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413476
sub ecx, edx
push ecx
lea eax, [ebp - 0x197]
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 - 0x34], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x3c], eax
cmp dword [esi + 0x14], 0x10
jb 0x4134bc
mov esi, dword [esi]
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp - 0x444]
cmp eax, dword [ebp - 0x3c]
ja 0x4135a0
test eax, eax
jne 0x4134e7
xor esi, esi
jmp 0x4135a3
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x43c]
jmp 0x413331
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.00421360
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x41359a
mov ecx, eax
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x444]
sub esi, 4
jb 0x413533
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41353c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x413522
cmp esi, 0xfffffffc
je 0x413878
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x413579
cmp esi, 0xfffffffd
je 0x413878
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x413579
cmp esi, 0xfffffffe
je 0x413878
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x413579
cmp esi, 0xffffffff
je 0x413878
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x413878
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.00421360
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x413512
mov edx, dword [ebp - 0x454]
or esi, 0xffffffff
mov eax, dword [ebp - 0x440]
cmp eax, 0x10
jb 0x4135d9
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4135cf
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push ecx
push edx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 0xf
mov byte [ebp - 0x454], 0
mov edx, dword [ebp - 0x990]
cmp edx, 0x10
jb 0x41362e
inc edx
mov ecx, dword [ebp - 0x9a4]
mov eax, ecx
cmp edx, 0x1000
jb 0x413624
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x994], 0
mov dword [ebp - 0x990], 0xf
mov byte [ebp - 0x9a4], 0
cmp esi, 0xffffffff
je 0x413658
mov dword [0], 0x2a
lea eax, [ebp - 0x9bc]
push eax
call fcn.00411090
add esp, 4
mov esi, eax
mov dword [ebp - 0x3c], eax
movq xmm0, qword [str.TDEA]
movq qword [ebp - 0x3ae], xmm0
mov ecx, dword [0x43ec74]
mov dword [ebp - 0x3a6], ecx
mov cx, word [0x43ec78]
mov word [ebp - 0x3a2], cx
test ch, ch
je 0x4137f1
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x4137c0
movaps xmm4, xmmword [0x43f900]
mov eax, 4
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43e550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
mov eax, dword [str.4444444444444444]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.TDEA]
pxor xmm1, xmm0
movd dword [ebp - 0x3ae], xmm1
movaps xmm2, xmmword [0x43e6e0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x3aa]
pxor xmm1, xmm0
movd dword [ebp - 0x3aa], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
nop
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x32
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x3ae], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x4137c0
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 0xf
lea ecx, [ebp - 0x3ae]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413818
sub ecx, edx
push ecx
lea eax, [ebp - 0x3ae]
push eax
lea ecx, [ebp - 0x46c]
call fcn.00401820
lea ecx, [ebp - 0x46c]
cmp dword [ebp - 0x458], 0x10
mov edx, dword [ebp - 0x46c]
cmovae ecx, edx
mov dword [ebp - 0x34], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x2c], eax
cmp dword [esi + 0x14], 0x10
jb 0x41385e
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp - 0x45c]
cmp eax, dword [ebp - 0x2c]
ja 0x413942
test eax, eax
jne 0x413889
xor esi, esi
jmp 0x413945
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x454]
jmp 0x4135a3
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.00421360
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x41393c
mov ecx, eax
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x45c]
sub esi, 4
jb 0x4138d5
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4138de
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4138c4
cmp esi, 0xfffffffc
je 0x413be5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41391b
cmp esi, 0xfffffffd
je 0x413be5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41391b
cmp esi, 0xfffffffe
je 0x413be5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41391b
cmp esi, 0xffffffff
je 0x413be5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x413be5
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.00421360
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4138b4
mov edx, dword [ebp - 0x46c]
or esi, 0xffffffff
mov eax, dword [ebp - 0x458]
cmp eax, 0x10
jb 0x41397b
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x413971
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push ecx
push edx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 0xf
mov byte [ebp - 0x46c], 0
mov edx, dword [ebp - 0x9a8]
cmp edx, 0x10
jb 0x4139d0
inc edx
mov ecx, dword [ebp - 0x9bc]
mov eax, ecx
cmp edx, 0x1000
jb 0x4139c6
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x9ac], 0
mov dword [ebp - 0x9a8], 0xf
mov byte [ebp - 0x9bc], 0
cmp esi, 0xffffffff
je 0x4139fa
mov dword [0], 0x2a
lea eax, [ebp - 0x2aac]
push eax
call fcn.00411090
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.UOCE_9]
mov dword [ebp - 0x151], ecx
mov cx, word [0x43ec80]
mov word [ebp - 0x14d], cx
test ch, ch
je 0x413a6a
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x151], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x413a40
mov dword [ebp - 0x4d8], 0
mov dword [ebp - 0x4c8], 0
mov dword [ebp - 0x4c4], 0xf
lea ecx, [ebp - 0x151]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413a91
sub ecx, edx
push ecx
lea eax, [ebp - 0x151]
push eax
lea ecx, [ebp - 0x4d8]
call fcn.00401820
lea ecx, [ebp - 0x4d8]
cmp dword [ebp - 0x4c4], 0x10
cmovae ecx, dword [ebp - 0x4d8]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413acf
mov eax, dword [eax]
push dword [ebp - 0x4c8]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x413bf6
lea eax, [ebp - 0x2a94]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0
mov dword [ebp - 0x30], esi
movq xmm0, qword [str.uoce]
movq qword [ebp - 0x3f7], xmm0
mov cl, byte [0x43ec8c]
mov byte [ebp - 0x3ef], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop word [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x3f7], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 9
jl 0x413b30
mov dword [ebp - 0x4c0], 0
mov dword [ebp - 0x4b0], 0
mov dword [ebp - 0x4ac], 0xf
lea ecx, [ebp - 0x3f7]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413b81
sub ecx, edx
push ecx
lea eax, [ebp - 0x3f7]
push eax
lea ecx, [ebp - 0x4c0]
call fcn.00401820
lea ecx, [ebp - 0x4c0]
cmp dword [ebp - 0x4ac], 0x10
mov esi, dword [ebp - 0x4c0]
cmovae ecx, esi
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413bc1
mov eax, dword [eax]
push dword [ebp - 0x4b0]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x413bfc
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x413c03
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x46c]
jmp 0x413945
mov esi, dword [ebp - 0x4c0]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test al, al
jns 0x413c61
and eax, 0xffffff7f
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x4ac]
cmp ecx, 0x10
jb 0x413c46
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x413c39
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push ecx
push esi
call fcn.004204fa
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4b0], 0
mov dword [ebp - 0x4ac], 0xf
mov byte [ebp - 0x4c0], 0
test al, 0x40
je 0x413c76
and eax, 0xffffffbf
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x2a94]
call fcn.00401290
mov edx, dword [ebp - 0x4c4]
cmp edx, 0x10
jb 0x413cb0
inc edx
mov ecx, dword [ebp - 0x4d8]
mov eax, ecx
cmp edx, 0x1000
jb 0x413ca6
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x4c8], 0
mov dword [ebp - 0x4c4], 0xf
mov byte [ebp - 0x4d8], 0
mov esi, dword [ebp - 0x30]
and esi, 0xffffffcf
lea ecx, [ebp - 0x2aac]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x413cec
mov dword [0], 0x2a
lea eax, [ebp - 0x2adc]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x300
mov dword [ebp - 0x30], esi
mov ecx, dword [str.UQ_V9]
mov dword [ebp - 0x157], ecx
mov cx, word [0x43ec94]
mov word [ebp - 0x153], cx
test ch, ch
je 0x413d5a
xor edx, edx
mov dword [ebp - 0x2c], edx
nop word [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x157], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x413d30
mov dword [ebp - 0x4a8], 0
mov dword [ebp - 0x498], 0
mov dword [ebp - 0x494], 0xf
lea ecx, [ebp - 0x157]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413d81
sub ecx, edx
push ecx
lea eax, [ebp - 0x157]
push eax
lea ecx, [ebp - 0x4a8]
call fcn.00401820
lea ecx, [ebp - 0x4a8]
cmp dword [ebp - 0x494], 0x10
cmovae ecx, dword [ebp - 0x4a8]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413dbf
mov eax, dword [eax]
push dword [ebp - 0x498]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x413fe5
lea eax, [ebp - 0x2ac4]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc00
mov dword [ebp - 0x30], esi
mov ecx, dword [str.afse]
mov esi, dword [0x43ec9c]
mov dword [ebp - 0x1ac], ecx
mov dword [ebp - 0x1a8], esi
cmp byte [0x43ec9f], 0
je 0x413f5a
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x413f30
movaps xmm4, xmmword [0x43f900]
mov eax, 4
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43e550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
mov eax, dword [str.4444444444444444]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x1ac], xmm1
movaps xmm2, xmmword [0x43e6e0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, esi
pxor xmm1, xmm0
movd dword [ebp - 0x1a8], xmm1
jmp 0x413f5a
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x1ac], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 8
jl 0x413f30
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4dc], 0xf
lea ecx, [ebp - 0x1ac]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413f81
sub ecx, edx
push ecx
lea eax, [ebp - 0x1ac]
push eax
lea ecx, [ebp - 0x4f0]
call fcn.00401820
lea ecx, [ebp - 0x4f0]
cmp dword [ebp - 0x4dc], 0x10
mov esi, dword [ebp - 0x4f0]
cmovae ecx, esi
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413fc1
mov eax, dword [eax]
push dword [ebp - 0x4e0]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x413feb
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x413ff2
mov esi, dword [ebp - 0x4f0]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x800
je 0x414053
and eax, 0xfffff7ff
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x4dc]
cmp ecx, 0x10
jb 0x414038
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x41402b
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push ecx
push esi
call fcn.004204fa
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4dc], 0xf
mov byte [ebp - 0x4f0], 0
test eax, 0x400
je 0x41406d
and eax, 0xfffffbff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x2ac4]
call fcn.00401290
mov edx, dword [ebp - 0x494]
cmp edx, 0x10
jb 0x4140a7
inc edx
mov ecx, dword [ebp - 0x4a8]
mov eax, ecx
cmp edx, 0x1000
jb 0x41409d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x498], 0
mov dword [ebp - 0x494], 0xf
mov byte [ebp - 0x4a8], 0
mov esi, dword [ebp - 0x30]
and esi, 0xfffffcff
lea ecx, [ebp - 0x2adc]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x4140e6
mov dword [0], 0x2a
lea eax, [ebp - 0x2b0c]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x3000
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43eca0]
mov dword [ebp - 0x100], ecx
cmp byte [0x43eca3], 0
je 0x4141e0
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x4141b6
movaps xmm3, xmmword [0x43e550]
movaps xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x43f900]
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x43f900]
shufps xmm2, xmm0, 0xdd
mov eax, 4
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.2222]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.4444444444444444]
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x100], xmm1
jmp 0x4141e0
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x100], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 4
jl 0x4141b6
mov dword [ebp - 0x520], 0
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x50c], 0xf
lea ecx, [ebp - 0x100]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414207
sub ecx, edx
push ecx
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x520]
call fcn.00401820
lea ecx, [ebp - 0x520]
cmp dword [ebp - 0x50c], 0x10
cmovae ecx, dword [ebp - 0x520]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414245
mov eax, dword [eax]
push dword [ebp - 0x510]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414355
lea eax, [ebp - 0x2af4]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc000
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43eca4]
mov dword [ebp - 0x109], ecx
mov cl, byte [0x43eca8]
mov byte [ebp - 0x105], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x109], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 5
jl 0x4142a0
mov dword [ebp - 0x508], 0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4f4], 0xf
lea ecx, [ebp - 0x109]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4142f1
sub ecx, edx
push ecx
lea eax, [ebp - 0x109]
push eax
lea ecx, [ebp - 0x508]
call fcn.00401820
lea ecx, [ebp - 0x508]
cmp dword [ebp - 0x4f4], 0x10
mov esi, dword [ebp - 0x508]
cmovae ecx, esi
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414331
mov eax, dword [eax]
push dword [ebp - 0x4f8]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41435b
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x414362
mov esi, dword [ebp - 0x508]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x8000
je 0x4143c3
and eax, 0xffff7fff
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x4f4]
cmp ecx, 0x10
jb 0x4143a8
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x41439b
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push ecx
push esi
call fcn.004204fa
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4f4], 0xf
mov byte [ebp - 0x508], 0
test eax, 0x4000
je 0x4143dd
and eax, 0xffffbfff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x2af4]
call fcn.00401290
mov edx, dword [ebp - 0x50c]
cmp edx, 0x10
jb 0x414417
inc edx
mov ecx, dword [ebp - 0x520]
mov eax, ecx
cmp edx, 0x1000
jb 0x41440d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x50c], 0xf
mov byte [ebp - 0x520], 0
mov esi, dword [ebp - 0x30]
and esi, 0xffffcfff
lea ecx, [ebp - 0x2b0c]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414456
mov dword [0], 0x2a
lea eax, [ebp - 0xc1c]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x30000
mov dword [ebp - 0x30], esi
mov ecx, dword [str.uf7uf]
mov dword [ebp - 0xcc], ecx
cmp byte [0x43ecaf], 0
je 0x414550
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x414526
movaps xmm3, xmmword [0x43e550]
movaps xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x43f900]
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x43f900]
shufps xmm2, xmm0, 0xdd
mov eax, 4
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.2222]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.4444444444444444]
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xcc], xmm1
jmp 0x414550
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0xcc], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 4
jl 0x414526
mov dword [ebp - 0x550], 0
mov dword [ebp - 0x540], 0
mov dword [ebp - 0x53c], 0xf
lea ecx, [ebp - 0xcc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414577
sub ecx, edx
push ecx
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0x550]
call fcn.00401820
lea ecx, [ebp - 0x550]
cmp dword [ebp - 0x53c], 0x10
cmovae ecx, dword [ebp - 0x550]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4145b5
mov eax, dword [eax]
push dword [ebp - 0x540]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4146c5
lea eax, [ebp - 0x2b24]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0000
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43ecb0]
mov dword [ebp - 0x180], ecx
mov cx, word [0x43ecb4]
mov word [ebp - 0x17c], cx
test ch, ch
je 0x41463a
xor edx, edx
mov dword [ebp - 0x2c], edx
nop
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x180], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x414610
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x528], 0
mov dword [ebp - 0x524], 0xf
lea ecx, [ebp - 0x180]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414661
sub ecx, edx
push ecx
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x538]
call fcn.00401820
lea ecx, [ebp - 0x538]
cmp dword [ebp - 0x524], 0x10
mov esi, dword [ebp - 0x538]
cmovae ecx, esi
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4146a1
mov eax, dword [eax]
push dword [ebp - 0x528]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4146cb
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x4146d2
mov esi, dword [ebp - 0x538]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x80000
je 0x414733
and eax, 0xfff7ffff
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x524]
cmp ecx, 0x10
jb 0x414718
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x41470b
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push ecx
push esi
call fcn.004204fa
add esp, 8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x528], 0
mov dword [ebp - 0x524], 0xf
mov byte [ebp - 0x538], 0
test eax, 0x40000
je 0x41474d
and eax, 0xfffbffff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x2b24]
call fcn.00401290
mov edx, dword [ebp - 0x53c]
cmp edx, 0x10
jb 0x414787
inc edx
mov ecx, dword [ebp - 0x550]
mov eax, ecx
cmp edx, 0x1000
jb 0x41477d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x540], 0
mov dword [ebp - 0x53c], 0xf
mov byte [ebp - 0x550], 0
mov esi, dword [ebp - 0x30]
and esi, 0xfffcffff
lea ecx, [ebp - 0xc1c]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x4147c6
mov dword [0], 0x2a
lea eax, [ebp - 0xc64]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x300000
mov ecx, dword [str.UWTN8]
mov dword [ebp - 0x10e], ecx
mov cl, byte [0x43ecbc]
mov byte [ebp - 0x10a], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x10e], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 5
jl 0x414800
mov dword [ebp - 0x568], 0
mov dword [ebp - 0x558], 0
mov dword [ebp - 0x554], 0xf
lea ecx, [ebp - 0x10e]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414851
sub ecx, edx
push ecx
lea eax, [ebp - 0x10e]
push eax
lea ecx, [ebp - 0x568]
call fcn.00401820
lea ecx, [ebp - 0x568]
cmp dword [ebp - 0x554], 0x10
cmovae ecx, dword [ebp - 0x568]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41488f
mov eax, dword [eax]
push dword [ebp - 0x558]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414a5c
lea eax, [ebp - 0xc4c]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc00000
mov ecx, dword [str.uwtn]
mov dword [ebp - 0x78], ecx
mov eax, dword [0x43ecc4]
mov dword [ebp - 0x74], eax
cmp byte [0x43ecc7], 0
je 0x414a18
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x4149f1
movaps xmm4, xmmword [0x43f900]
mov eax, 4
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43e550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
mov eax, dword [str.4444444444444444]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x78], xmm1
movaps xmm2, xmmword [0x43e6e0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x43ecc4]
pxor xmm1, xmm0
movd dword [ebp - 0x74], xmm1
jmp 0x414a18
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 8
jl 0x4149f1
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0xc34]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x414a35
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414a43
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 0x414a60
mov byte [ebp - 0x25], 0
test esi, 0x800000
je 0x414a79
and esi, 0xff7fffff
lea ecx, [ebp - 0xc34]
call fcn.00401290
test esi, 0x400000
je 0x414a92
and esi, 0xffbfffff
lea ecx, [ebp - 0xc4c]
call fcn.00401290
mov edx, dword [ebp - 0x554]
cmp edx, 0x10
jb 0x414acc
inc edx
mov ecx, dword [ebp - 0x568]
mov eax, ecx
cmp edx, 0x1000
jb 0x414ac2
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x558], 0
mov dword [ebp - 0x554], 0xf
mov byte [ebp - 0x568], 0
and esi, 0xffcfffff
lea ecx, [ebp - 0xc64]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414b08
mov dword [0], 0x2a
lea eax, [ebp - 0xcac]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x3000000
mov ecx, dword [0x43ecc8]
mov dword [ebp - 0x1a4], ecx
mov cx, word [0x43eccc]
mov word [ebp - 0x1a0], cx
test ch, ch
je 0x414b6d
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x1a4], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x414b43
mov dword [ebp - 0x580], 0
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], 0xf
lea ecx, [ebp - 0x1a4]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414b94
sub ecx, edx
push ecx
lea eax, [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0x580]
call fcn.00401820
lea ecx, [ebp - 0x580]
cmp dword [ebp - 0x56c], 0x10
cmovae ecx, dword [ebp - 0x580]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414bd2
mov eax, dword [eax]
push dword [ebp - 0x570]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414ca1
lea eax, [ebp - 0xc94]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc000000
movq xmm0, qword [str.xxa]
movq qword [ebp - 0xe7], xmm0
mov cl, byte [0x43ecd8]
mov byte [ebp - 0xdf], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop word [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0xe7], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 9
jl 0x414c30
lea eax, [ebp - 0xe7]
push eax
lea ecx, [ebp - 0xc7c]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x414c7a
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414c88
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 0x414ca5
mov byte [ebp - 0x25], 0
test esi, 0x8000000
je 0x414cbe
and esi, 0xf7ffffff
lea ecx, [ebp - 0xc7c]
call fcn.00401290
test esi, 0x4000000
je 0x414cd7
and esi, 0xfbffffff
lea ecx, [ebp - 0xc94]
call fcn.00401290
mov edx, dword [ebp - 0x56c]
cmp edx, 0x10
jb 0x414d11
inc edx
mov ecx, dword [ebp - 0x580]
mov eax, ecx
cmp edx, 0x1000
jb 0x414d07
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], 0xf
mov byte [ebp - 0x580], 0
and esi, 0xfcffffff
lea ecx, [ebp - 0xcac]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414d4d
mov dword [0], 0x2a
lea eax, [ebp - 0xcf4]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x30000000
mov ecx, dword [str.ZDDL9]
mov dword [ebp - 0x186], ecx
mov cx, word [0x43ece0]
mov word [ebp - 0x182], cx
test ch, ch
je 0x414dba
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x186], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x414d90
mov dword [ebp - 0x598], 0
mov dword [ebp - 0x588], 0
mov dword [ebp - 0x584], 0xf
lea ecx, [ebp - 0x186]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414de1
sub ecx, edx
push ecx
lea eax, [ebp - 0x186]
push eax
lea ecx, [ebp - 0x598]
call fcn.00401820
lea ecx, [ebp - 0x598]
cmp dword [ebp - 0x584], 0x10
cmovae ecx, dword [ebp - 0x598]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414e1f
mov eax, dword [eax]
push dword [ebp - 0x588]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414ee5
lea eax, [ebp - 0xcdc]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0000000
movq xmm0, qword [str.zddl]
movq qword [ebp - 0xe7], xmm0
mov cl, byte [0x43ecec]
mov byte [ebp - 0xdf], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0xe7], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 9
jl 0x414e74
lea eax, [ebp - 0xe7]
push eax
lea ecx, [ebp - 0xcc4]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x414ebe
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414ecc
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 0x414ee9
mov byte [ebp - 0x25], 0
test esi, esi
jns 0x414efe
and esi, 0x7fffffff
lea ecx, [ebp - 0xcc4]
call fcn.00401290
test esi, 0x40000000
je 0x414f11
lea ecx, [ebp - 0xcdc]
call fcn.00401290
mov edx, dword [ebp - 0x584]
cmp edx, 0x10
jb 0x414f4b
inc edx
mov ecx, dword [ebp - 0x598]
mov eax, ecx
cmp edx, 0x1000
jb 0x414f41
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x588], 0
mov dword [ebp - 0x584], 0xf
mov byte [ebp - 0x598], 0
lea ecx, [ebp - 0xcf4]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414f81
mov dword [0], 0x2a
lea eax, [ebp - 0xd3c]
push eax
call fcn.00411090
add esp, 4
mov esi, eax
mov dword [ebp - 0x3c], eax
mov ecx, dword [str.ctzk:]
mov dword [ebp - 0x19e], ecx
mov cx, word [0x43ecf4]
mov word [ebp - 0x19a], cx
mov cl, byte [0x43ecf6]
mov byte [ebp - 0x198], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x19e], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 7
jl 0x414fc0
mov dword [ebp - 0x5b0], 0
mov dword [ebp - 0x5a0], 0
mov dword [ebp - 0x59c], 0xf
lea ecx, [ebp - 0x19e]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415011
sub ecx, edx
push ecx
lea eax, [ebp - 0x19e]
push eax
lea ecx, [ebp - 0x5b0]
call fcn.00401820
lea eax, [ebp - 0x5b0]
cmp dword [ebp - 0x59c], 0x10
cmovae eax, dword [ebp - 0x5b0]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x41504f
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
mov esi, 3
mov dword [ebp - 0x30], esi
push dword [ebp - 0x5a0]
push eax
push 0
push ecx
push dword [ebp - 0x3c]
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41512a
lea eax, [ebp - 0xd24]
push eax
call fcn.00410f20
add esp, 4
mov esi, eax
mov dword [ebp - 0x3c], eax
movq xmm0, qword [str.ctzk]
movq qword [ebp - 0xe8], xmm0
mov cx, word [0x43ed00]
mov word [ebp - 0xe0], cx
test ch, ch
je 0x4150da
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0xe8], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 0xa
jl 0x4150b0
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0xd0c]
call fcn.00404740
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4150f7
mov eax, dword [eax]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x415105
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 0x41512a
mov byte [ebp - 0x25], 1
mov eax, esi
jmp 0x415135
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test al, 8
je 0x415149
and eax, 0xfffffff7
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd0c]
call fcn.00401290
mov eax, dword [ebp - 0x30]
test al, 4
je 0x41515e
and eax, 0xfffffffb
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd24]
call fcn.00401290
mov edx, dword [ebp - 0x59c]
cmp edx, 0x10
jb 0x415198
inc edx
mov ecx, dword [ebp - 0x5b0]
mov eax, ecx
cmp edx, 0x1000
jb 0x41518e
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x5a0], 0
mov dword [ebp - 0x59c], 0xf
mov byte [ebp - 0x5b0], 0
mov esi, dword [ebp - 0x30]
and esi, 0xfffffffc
lea ecx, [ebp - 0xd3c]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x4151d4
mov dword [0], 0x2a
lea eax, [ebp - 0xd84]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x30
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43ed04]
mov dword [ebp - 0x113], ecx
mov cl, byte [0x43ed08]
mov byte [ebp - 0x10f], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop dword [eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x113], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 5
jl 0x415210
mov dword [ebp - 0x5c8], 0
mov dword [ebp - 0x5b8], 0
mov dword [ebp - 0x5b4], 0xf
lea ecx, [ebp - 0x113]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415261
sub ecx, edx
push ecx
lea eax, [ebp - 0x113]
push eax
lea ecx, [ebp - 0x5c8]
call fcn.00401820
lea ecx, [ebp - 0x5c8]
cmp dword [ebp - 0x5b4], 0x10
cmovae ecx, dword [ebp - 0x5c8]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41529f
mov eax, dword [eax]
push dword [ebp - 0x5b8]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41546f
lea eax, [ebp - 0xd6c]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0
mov dword [ebp - 0x30], esi
mov ecx, dword [0x43ed0c]
mov esi, dword [0x43ed10]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], esi
cmp byte [0x43ed13], 0
je 0x415428
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x415401
movaps xmm4, xmmword [0x43f900]
mov eax, 4
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43e550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
mov eax, dword [str.4444444444444444]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x78], xmm1
movaps xmm2, xmmword [0x43e6e0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, esi
pxor xmm1, xmm0
movd dword [ebp - 0x74], xmm1
jmp 0x415428
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 8
jl 0x415401
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0xd54]
call fcn.00404740
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x415442
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x415450
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41546f
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x415476
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test al, al
jns 0x415490
and eax, 0xffffff7f
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd54]
call fcn.00401290
mov eax, dword [ebp - 0x30]
test al, 0x40
je 0x4154a5
and eax, 0xffffffbf
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd6c]
call fcn.00401290
mov edx, dword [ebp - 0x5b4]
cmp edx, 0x10
jb 0x4154df
inc edx
mov ecx, dword [ebp - 0x5c8]
mov eax, ecx
cmp edx, 0x1000
jb 0x4154d5
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x5b8], 0
mov dword [ebp - 0x5b4], 0xf
mov byte [ebp - 0x5c8], 0
mov esi, dword [ebp - 0x30]
and esi, 0xffffffcf
lea ecx, [ebp - 0xd84]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x41551b
mov dword [0], 0x2a
lea eax, [ebp - 0xdcc]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x300
mov dword [ebp - 0x30], esi
movq xmm0, qword [0x43ed14]
movq qword [ebp - 0x3a0], xmm0
mov ecx, dword [0x43ed1c]
mov dword [ebp - 0x398], ecx
mov cx, word [0x43ed20]
mov word [ebp - 0x394], cx
test ch, ch
je 0x4156c1
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x415690
movaps xmm4, xmmword [0x43f900]
mov eax, 4
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43e550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
mov eax, dword [str.4444444444444444]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x43ed14]
pxor xmm1, xmm0
movd dword [ebp - 0x3a0], xmm1
movaps xmm2, xmmword [0x43e6e0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x39c]
pxor xmm1, xmm0
movd dword [ebp - 0x39c], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
nop dword [eax + eax]
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x32
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x3a0], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x415690
mov dword [ebp - 0x5e0], 0
mov dword [ebp - 0x5d0], 0
mov dword [ebp - 0x5cc], 0xf
lea ecx, [ebp - 0x3a0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4156e8
sub ecx, edx
push ecx
lea eax, [ebp - 0x3a0]
push eax
lea ecx, [ebp - 0x5e0]
call fcn.00401820
lea ecx, [ebp - 0x5e0]
cmp dword [ebp - 0x5cc], 0x10
cmovae ecx, dword [ebp - 0x5e0]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x415726
mov eax, dword [eax]
push dword [ebp - 0x5d0]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4157ee
lea eax, [ebp - 0xdb4]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc00
mov dword [ebp - 0x30], esi
mov ecx, dword [str.g_XV9]
mov dword [ebp - 0x7e], ecx
mov cx, word [0x43ed28]
mov word [ebp - 0x7a], cx
test ch, ch
je 0x4157a7
xor edx, edx
mov dword [ebp - 0x2c], edx
nop word [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x7e], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 6
jl 0x415780
lea eax, [ebp - 0x7e]
push eax
lea ecx, [ebp - 0xd9c]
call fcn.00404740
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4157c1
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x4157cf
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4157ee
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x4157f5
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x30]
test eax, 0x800
je 0x415812
and eax, 0xfffff7ff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xd9c]
call fcn.00401290
mov eax, dword [ebp - 0x30]
test eax, 0x400
je 0x41582c
and eax, 0xfffffbff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xdb4]
call fcn.00401290
mov edx, dword [ebp - 0x5cc]
cmp edx, 0x10
jb 0x415866
inc edx
mov ecx, dword [ebp - 0x5e0]
mov eax, ecx
cmp edx, 0x1000
jb 0x41585c
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x5d0], 0
mov dword [ebp - 0x5cc], 0xf
mov byte [ebp - 0x5e0], 0
mov esi, dword [ebp - 0x30]
and esi, 0xfffffcff
lea ecx, [ebp - 0xdcc]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x4158a5
mov dword [0], 0x2a
lea eax, [ebp - 0xe14]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x3000
mov dword [ebp - 0x30], esi
movq xmm0, qword [str.uQ_VPIONJP2A]
movq qword [ebp - 0x392], xmm0
mov ecx, dword [0x43ed34]
mov dword [ebp - 0x38a], ecx
mov cx, word [0x43ed38]
mov word [ebp - 0x386], cx
test ch, ch
je 0x415a43
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x415a12
movaps xmm4, xmmword [0x43f900]
mov eax, 4
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x43e550]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
mov eax, dword [str.4444444444444444]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.uQ_VPIONJP2A]
pxor xmm1, xmm0
movd dword [ebp - 0x392], xmm1
movaps xmm2, xmmword [0x43e6e0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.2222]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x43e5d0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x38e]
pxor xmm1, xmm0
movd dword [ebp - 0x38e], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x32
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0x392], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x415a12
mov dword [ebp - 0x5f8], 0
mov dword [ebp - 0x5e8], 0
mov dword [ebp - 0x5e4], 0xf
lea ecx, [ebp - 0x392]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415a70
sub ecx, edx
push ecx
lea eax, [ebp - 0x392]
push eax
lea ecx, [ebp - 0x5f8]
call fcn.00401820
lea ecx, [ebp - 0x5f8]
cmp dword [ebp - 0x5e4], 0x10
cmovae ecx, dword [ebp - 0x5f8]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x415aae
mov eax, dword [eax]
push dword [ebp - 0x5e8]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415b84
lea eax, [ebp - 0xdfc]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc000
mov dword [ebp - 0x30], esi
mov ecx, dword [str._peck:]
mov dword [ebp - 0xfc], ecx
mov cx, word [0x43ed40]
mov word [ebp - 0xf8], cx
mov cl, byte [0x43ed42]
mov byte [ebp - 0xf6], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
xor byte [ebp + edx - 0xfc], cl
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 7
jl 0x415b10
lea eax, [ebp - 0xfc]
push eax
lea ecx, [ebp - 0xde4]
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 - 0xde4]
call fcn.00401290
mov eax, dword [ebp - 0x30]
test eax, 0x4000
je 0x415bc2
and eax, 0xffffbfff
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0xdfc]
call fcn.00401290
mov edx, dword [ebp - 0x5e4]
cmp edx, 0x10
jb 0x415bfc
inc edx
mov ecx, dword [ebp - 0x5f8]
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 0x41edaf
push edx
push ecx
call fcn.004204fa
add esp, 8
mov dword [ebp - 0x5e8], 0
mov dword [ebp - 0x5e4], 0xf
mov byte [ebp - 0x5f8], 0
mov esi, dword [ebp - 0x30]
and esi, 0xffffcfff
lea ecx, [ebp - 0xe14]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x415c3b
mov dword [0], 0x2a
lea eax, [ebp - 0xe74]
push eax
call fcn.00411090
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0x30000
mov ecx, dword [str.u_XV8]
mov dword [ebp - 0x5c], ecx
mov cl, byte [0x43ed48]
mov byte [ebp - 0x58], cl
xor edx, edx
mov dword [ebp - 0x2c], edx
nop word [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x32
mov edx, dword [ebp - 0x2c]
mov cl, dl
sub cl, al
add cl, 0x34
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 - 0xe5c]
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 0x415e8c
lea eax, [ebp - 0xe44]
push eax
call fcn.00410f20
add esp, 4
mov dword [ebp - 0x34], eax
or esi, 0xc0000
mov ecx, dword [str.uxv]
mov dword [ebp - 0x78], ecx
mov eax, dword [0x43ed50]
mov dword [ebp - 0x74], eax
cmp byte [0x43ed53], 0
je 0x415e48
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp edi, 2
jl 0x415e21
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0xe2c]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x415e65
mov byte [ebp - 0x25], 0
test esi, 0x80000
je 0x415ea9
and esi, 0xfff7ffff
lea ecx, [ebp - 0xe2c]
call fcn.00401290
test esi, 0x40000
je 0x415ebc
call fcn.0042496f
push edi
lea ecx, [ebp - 0xab8]
call fcn.00405620
push 0x44c5bc
lea eax, [ebp - 0xab8]
push eax
call fcn.004212f0
push edi
lea ecx, [ebp - 0xaac]
call fcn.00405620
push 0x44c5bc
lea eax, [ebp - 0xaac]
push eax
call fcn.004212f0
push edi
lea ecx, [ebp - 0x283c]
call fcn.00404740
mov esi, eax
lea eax, [ebp - 0x3c8]
push eax
lea ecx, [ebp - 0x2824]
call fcn.00408be0
push esi
push eax
lea eax, [ebp - 0x280c]
push eax
call fcn.00407340
push dword [ebp - 0xb4]
push eax
lea eax, [ebp - 0x27f4]
push eax
call fcn.00407340
push dword [ebp - 0xd0]
push eax
lea eax, [ebp - 0x27dc]
push eax
call fcn.00407340
push dword [ebp - 0xc4]
push eax
lea eax, [ebp - 0x27c4]
push eax
call fcn.00407340
push dword [ebp - 0xc8]
push eax
lea eax, [ebp - 0x27ac]
push eax
call fcn.00407340
push dword [ebp - 0x104]
push eax
lea eax, [ebp - 0x2794]
push eax
call fcn.00407340
add esp, 0x48
push dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0x277c]
push eax
call fcn.00407340
push dword [ebp - 0xbc]
push eax
lea eax, [ebp - 0x2764]
push eax
call fcn.00407340
push dword [ebp - 0xc0]
push eax
lea eax, [ebp - 0x274c]
push eax
call fcn.00407340
push dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x2734]
push eax
call fcn.00407340
push dword [ebp - 0x38]
push eax
lea eax, [ebp - 0x271c]
push eax
call fcn.00407340
push dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x2704]
push eax
call fcn.00407340
add esp, 0x48
mov ecx, eax
call fcn.004062e0
push eax
lea eax, [ebp - 0x26ec]
push eax
call fcn.00405890
add esp, 8
lea ecx, [ebp - 0x26ec]
call fcn.00401290
lea ecx, [ebp - 0x2704]
call fcn.00401290
lea ecx, [ebp - 0x271c]
call fcn.00401290
lea ecx, [ebp - 0x2734]
call fcn.00401290
lea ecx, [ebp - 0x274c]
call fcn.00401290
lea ecx, [ebp - 0x2764]
call fcn.00401290
lea ecx, [ebp - 0x277c]
call fcn.00401290
lea ecx, [ebp - 0x2794]
call fcn.00401290
lea ecx, [ebp - 0x27ac]
call fcn.00401290
lea ecx, [ebp - 0x27c4]
call fcn.00401290
lea ecx, [ebp - 0x27dc]
call fcn.00401290
lea ecx, [ebp - 0x27f4]
call fcn.00401290
lea ecx, [ebp - 0x280c]
call fcn.00401290
lea ecx, [ebp - 0x2824]
call fcn.00401290
lea ecx, [ebp - 0x283c]
call fcn.00401290
lea ecx, [ebp - 0x2854]
call fcn.00401290
lea ecx, [ebp - 0x286c]
call fcn.00401290
lea ecx, [ebp - 0x2884]
call fcn.00401290
lea ecx, [ebp - 0x289c]
call fcn.00401290
lea ecx, [ebp - 0x28b4]
call fcn.00401290
lea ecx, [ebp - 0x28cc]
call fcn.00401290
lea ecx, [ebp - 0x28e4]
call fcn.00401290
lea ecx, [ebp - 0x28fc]
call fcn.00401290
lea ecx, [ebp - 0x2914]
call fcn.00401290
lea ecx, [ebp - 0x292c]
call fcn.00401290
lea ecx, [ebp - 0x2944]
call fcn.00401290
lea ecx, [ebp - 0x295c]
call fcn.00401290
lea ecx, [ebp - 0x2974]
call fcn.00401290
lea ecx, [ebp - 0x298c]
call fcn.00401290
lea ecx, [ebp - 0x29a4]
call fcn.00401290
lea ecx, [ebp - 0x29bc]
call fcn.00401290
lea ecx, [ebp - 0x29d4]
call fcn.00401290
lea ecx, [ebp - 0x29ec]
call fcn.00401290
lea ecx, [ebp - 0x2a04]
call fcn.00401290
lea ecx, [ebp - 0x2a1c]
call fcn.00401290
lea ecx, [ebp - 0x2a34]
call fcn.00401290
lea ecx, [ebp - 0x2a4c]
call fcn.00401290
lea ecx, [ebp - 0x2a64]
call fcn.00401290
lea ecx, [ebp - 0x2a7c]
call fcn.00401290
lea eax, [ebp - 0xae8]
push eax
call fcn.0040bc20
add esp, 4
push 0
call fcn.004265c7
int3