Function at 0x412690
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 0x43e010
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
sub esp, 0xc
mov eax, 0x2b34
call fcn.00420700
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x58], 0
movups xmm0, xmmword [0x43fbac]
movups xmmword [ebp - 0xa7d], xmm0
movups xmm0, xmmword [0x43fbbc]
movups xmmword [ebp - 0xa6d], xmm0
movups xmm0, xmmword [0x43fbcc]
movups xmmword [ebp - 0xa5d], xmm0
movq xmm0, qword [str.M_a_n_vI]
movq qword [ebp - 0xa4d], xmm0
mov al, byte [0x43fbe4]
mov byte [ebp - 0xa45], al
xor edx, edx
mov dword [ebp - 0xd0], edx
mov edi, dword [0x450534]
lea esi, [edx + 4]
cmp edi, 2
jl 0x412880
movaps xmm4, xmmword [0x43f550]
movaps xmm3, xmmword [0x4408d0]
movd xmm5, esi
movaps xmm6, xmmword [str.6666]
mov ecx, 0x1f
movd xmm7, ecx
movaps xmm0, xmmword [str.3333333333333333]
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 [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa7d]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa7d], 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 [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa79]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa79], xmm1
add edx, 8
cmp edx, 0x38
jl 0x412770
mov dword [ebp - 0xd0], edx
cmp edx, 0x39
jge 0x4128b7
nop
mov eax, 0x4bda12f7
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0xd0]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xa7d], cl
inc edx
mov dword [ebp - 0xd0], edx
cmp edx, 0x39
jl 0x412880
mov dword [ebp - 0x804], 0
mov dword [ebp - 0x7f4], 0
mov dword [ebp - 0x7f0], 0xf
lea ecx, [ebp - 0xa7d]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4128e0
sub ecx, edx
push ecx
lea eax, [ebp - 0xa7d]
push eax
lea ecx, [ebp - 0x804]
call fcn.00401820
lea eax, [ebp - 0x804]
push eax
call fcn.00409d60
add esp, 4
mov byte [ebp - 0x25], al
mov edx, dword [ebp - 0x7f0]
cmp edx, 0x10
jb 0x41294b
inc edx
mov ecx, dword [ebp - 0x804]
mov eax, ecx
cmp edx, 0x1000
jb 0x41293e
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov al, byte [ebp - 0x25]
mov dword [ebp - 0x7f4], 0
mov dword [ebp - 0x7f0], 0xf
mov byte [ebp - 0x804], 0
test al, al
je 0x412974
mov dword [0], 0x2a
movups xmm0, xmmword [0x43fbe8]
movups xmmword [ebp - 0x971], xmm0
movups xmm0, xmmword [0x43fbf8]
movups xmmword [ebp - 0x961], xmm0
movups xmm0, xmmword [0x43fc08]
movups xmmword [ebp - 0x951], xmm0
mov ax, word [0x43fc18]
mov word [ebp - 0x941], ax
mov al, byte [0x43fc1a]
mov byte [ebp - 0x93f], al
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x412b10
movaps xmm4, xmmword [0x43f550]
movaps xmm3, xmmword [0x4408d0]
movd xmm5, esi
movaps xmm6, xmmword [str.6666]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.3333333333333333]
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 [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x971]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x971], 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 [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x96d]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x96d], xmm1
add edx, 8
cmp edx, 0x30
jl 0x412a00
mov dword [ebp - 0x24], edx
cmp edx, 0x33
jge 0x412b41
nop dword [eax + eax]
mov eax, 0x4bda12f7
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x971], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0x33
jl 0x412b10
mov dword [ebp - 0x834], 0
mov dword [ebp - 0x824], 0
mov dword [ebp - 0x820], 0xf
lea ecx, [ebp - 0x971]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412b68
sub ecx, edx
push ecx
lea eax, [ebp - 0x971]
push eax
lea ecx, [ebp - 0x834]
call fcn.00401820
mov esi, 1
mov dword [ebp - 0x2c], esi
lea eax, [ebp - 0x834]
push eax
call fcn.00409d60
add esp, 4
test al, al
je 0x412f8a
movups xmm0, xmmword [0x43fc1c]
movups xmmword [ebp - 0xa44], xmm0
movups xmm0, xmmword [str._0_9]
movups xmmword [ebp - 0xa34], xmm0
movups xmm0, xmmword [0x43fc3c]
movups xmmword [ebp - 0xa24], xmm0
mov eax, dword [0x43fc4c]
mov dword [ebp - 0xa14], eax
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x412d30
movaps xmm4, xmmword [0x43f550]
movaps xmm3, xmmword [0x4408d0]
mov eax, 4
movd xmm5, eax
movaps xmm6, xmmword [str.6666]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.3333333333333333]
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 [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa44]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa44], 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 [0x43f5d0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xa40]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xa40], xmm1
add edx, 8
cmp edx, 0x30
jl 0x412c20
mov dword [ebp - 0x24], edx
cmp edx, 0x34
jge 0x412d61
nop dword [eax + eax]
mov eax, 0x4bda12f7
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xa44], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0x34
jl 0x412d30
mov dword [ebp - 0x81c], 0
mov dword [ebp - 0x80c], 0
mov dword [ebp - 0x808], 0xf
lea ecx, [ebp - 0xa44]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412d88
sub ecx, edx
push ecx
lea eax, [ebp - 0xa44]
push eax
lea ecx, [ebp - 0x81c]
call fcn.00401820
mov esi, 3
mov dword [ebp - 0x2c], esi
lea eax, [ebp - 0x81c]
push eax
call fcn.00409d60
add esp, 4
test al, al
je 0x412f8a
lea eax, [ebp - 0x9a4]
push eax
call fcn.00411080
add esp, 4
mov esi, eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [0x43fc50]
mov dword [ebp - 0x136], ecx
mov cx, word [0x43fc54]
mov word [ebp - 0x132], cx
test ch, ch
je 0x412e33
xor edx, edx
mov dword [ebp - 0x24], edx
nop word [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x136], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x412e00
mov dword [ebp - 0x384], 0
mov dword [ebp - 0x374], 0
mov dword [ebp - 0x370], 0xf
lea ecx, [ebp - 0x136]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412e60
sub ecx, edx
push ecx
lea eax, [ebp - 0x136]
push eax
lea ecx, [ebp - 0x384]
call fcn.00401820
lea edx, [ebp - 0x384]
cmp dword [ebp - 0x370], 0x10
mov ecx, dword [ebp - 0x384]
cmovae edx, ecx
mov dword [ebp - 0x34], edx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x14], 0x10
jb 0x412ea6
mov esi, dword [esi]
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp - 0x374]
cmp eax, dword [ebp - 0x24]
ja 0x412f66
test eax, eax
jne 0x412ec3
mov eax, 0xf
jmp 0x412f93
mov ecx, dword [ebp - 0x24]
sub ecx, eax
lea eax, [ecx + 1]
add eax, esi
mov dword [ebp - 0x74], eax
movsx ecx, byte [edx]
mov dword [ebp - 0x38], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.004215b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x412f60
nop word [eax + eax]
mov ecx, eax
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x374]
sub esi, 4
jb 0x412f11
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x412f16
add ecx, 4
add edx, 4
sub esi, 4
jae 0x412f00
cmp esi, 0xfffffffc
je 0x412f71
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x412f43
cmp esi, 0xfffffffd
je 0x412f71
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x412f43
cmp esi, 0xfffffffe
je 0x412f71
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x412f43
cmp esi, 0xffffffff
je 0x412f71
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x412f71
mov ecx, dword [ebp - 0x24]
inc ecx
mov eax, dword [ebp - 0x74]
sub eax, ecx
push eax
push dword [ebp - 0x38]
push ecx
call fcn.004215b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x412ef0
mov ecx, dword [ebp - 0x384]
mov byte [ebp - 0x25], 1
mov eax, 0xf
jmp 0x412f9b
mov eax, 0xf
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x384]
je 0x412f93
mov byte [ebp - 0x25], 1
jmp 0x412f9b
mov ecx, dword [ebp - 0x384]
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 0x25], 0
test al, 8
je 0x412ff3
and eax, 0xfffffff7
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x370]
cmp edx, 0x10
jb 0x412fd8
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412fcb
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x374], 0
mov dword [ebp - 0x370], 0xf
mov byte [ebp - 0x384], 0
test al, 4
je 0x413055
and eax, 0xfffffffb
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x990]
cmp edx, 0x10
jb 0x41303a
inc edx
mov ecx, dword [ebp - 0x9a4]
mov eax, ecx
cmp edx, 0x1000
jb 0x41302d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x994], 0
mov dword [ebp - 0x990], 0xf
mov byte [ebp - 0x9a4], 0
test al, 2
je 0x4130b7
and eax, 0xfffffffd
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x808]
cmp edx, 0x10
jb 0x41309c
inc edx
mov ecx, dword [ebp - 0x81c]
mov eax, ecx
cmp edx, 0x1000
jb 0x41308f
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x80c], 0
mov dword [ebp - 0x808], 0xf
mov byte [ebp - 0x81c], 0
and eax, 0xfffffffe
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x820]
cmp edx, 0x10
jb 0x4130f7
inc edx
mov ecx, dword [ebp - 0x834]
mov eax, ecx
cmp edx, 0x1000
jb 0x4130ed
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x824], 0
mov dword [ebp - 0x820], 0xf
mov byte [ebp - 0x834], 0
cmp byte [ebp - 0x25], 0
je 0x413122
mov dword [0], 0x2a
push 1
push str._a_z_8_
lea ecx, [ebp - 0xbec]
call fcn.00408980
push 1
push str._A_Z_8_
lea ecx, [ebp - 0xb90]
call fcn.00408980
push 1
push str.d6_
lea ecx, [ebp - 0xba4]
call fcn.00408980
lea eax, [ebp - 0x9c8]
push eax
call fcn.00411080
add esp, 4
mov esi, eax
mov dword [ebp - 0x74], eax
movq xmm0, qword [str.cU_Z]
movq qword [ebp - 0x420], xmm0
mov cx, word [0x43fc60]
mov word [ebp - 0x418], cx
mov cl, byte [0x43fc62]
mov byte [ebp - 0x416], cl
xor edx, edx
mov dword [ebp - 0x24], edx
nop dword [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x420], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xb
jl 0x4131a0
mov dword [ebp - 0x450], 0
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 0xf
lea ecx, [ebp - 0x420]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413200
sub ecx, edx
push ecx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x450]
call fcn.00401820
lea ecx, [ebp - 0x450]
cmp dword [ebp - 0x43c], 0x10
mov edx, dword [ebp - 0x450]
cmovae ecx, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x14], 0x10
jb 0x413246
mov esi, dword [esi]
mov dword [ebp - 0x74], esi
mov eax, dword [ebp - 0x440]
cmp eax, dword [ebp - 0x24]
ja 0x41331e
test eax, eax
jne 0x413260
xor esi, esi
jmp 0x413321
mov edx, dword [ebp - 0x24]
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x34], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x30], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.004215b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x413318
nop dword [eax + eax]
mov ecx, eax
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x440]
sub esi, 4
jb 0x4132b1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4132ba
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4132a0
cmp esi, 0xfffffffc
je 0x4134d0
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4132f7
cmp esi, 0xfffffffd
je 0x4134d0
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4132f7
cmp esi, 0xfffffffe
je 0x4134d0
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4132f7
cmp esi, 0xffffffff
je 0x4134d0
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4134d0
mov esi, dword [ebp - 0x24]
inc esi
mov eax, dword [ebp - 0x34]
sub eax, esi
push eax
push dword [ebp - 0x30]
push esi
call fcn.004215b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x413290
mov edx, dword [ebp - 0x450]
or esi, 0xffffffff
mov eax, dword [ebp - 0x43c]
cmp eax, 0x10
jb 0x413357
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x41334d
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push ecx
push edx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 0xf
mov byte [ebp - 0x450], 0
mov edx, dword [ebp - 0x9b4]
cmp edx, 0x10
jb 0x4133ac
inc edx
mov ecx, dword [ebp - 0x9c8]
mov eax, ecx
cmp edx, 0x1000
jb 0x4133a2
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x9b8], 0
mov dword [ebp - 0x9b4], 0xf
mov byte [ebp - 0x9c8], 0
cmp esi, 0xffffffff
je 0x4133d6
mov dword [0], 0x2a
lea eax, [ebp - 0xa10]
push eax
call fcn.00411080
add esp, 4
mov esi, eax
mov dword [ebp - 0x34], eax
mov ecx, dword [str.TQZDP_9]
mov dword [ebp - 0x19b], ecx
mov cx, word [0x43fc68]
mov word [ebp - 0x197], cx
mov cl, byte [0x43fc6a]
mov byte [ebp - 0x195], cl
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x19b], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 7
jl 0x413415
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 0xf
lea ecx, [ebp - 0x19b]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413470
sub ecx, edx
push ecx
lea eax, [ebp - 0x19b]
push eax
lea ecx, [ebp - 0x438]
call fcn.00401820
lea ecx, [ebp - 0x438]
cmp dword [ebp - 0x424], 0x10
mov edx, dword [ebp - 0x438]
cmovae ecx, edx
mov dword [ebp - 0x30], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x74], eax
cmp dword [esi + 0x14], 0x10
jb 0x4134b6
mov esi, dword [esi]
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 0x428]
cmp eax, dword [ebp - 0x74]
ja 0x41359e
test eax, eax
jne 0x4134e1
xor esi, esi
jmp 0x4135a1
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x74]
mov edx, dword [ebp - 0x450]
jmp 0x413321
mov edx, dword [ebp - 0x74]
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x38], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x74], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.004215b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x413598
nop dword [eax]
mov ecx, eax
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x428]
sub esi, 4
jb 0x413531
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41353a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x413520
cmp esi, 0xfffffffc
je 0x413878
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x413577
cmp esi, 0xfffffffd
je 0x413878
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x413577
cmp esi, 0xfffffffe
je 0x413878
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x413577
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 - 0x74]
push esi
call fcn.004215b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x413510
mov edx, dword [ebp - 0x438]
or esi, 0xffffffff
mov eax, dword [ebp - 0x424]
cmp eax, 0x10
jb 0x4135d7
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4135cd
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push ecx
push edx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 0xf
mov byte [ebp - 0x438], 0
mov edx, dword [ebp - 0x9fc]
cmp edx, 0x10
jb 0x41362c
inc edx
mov ecx, dword [ebp - 0xa10]
mov eax, ecx
cmp edx, 0x1000
jb 0x413622
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0xa00], 0
mov dword [ebp - 0x9fc], 0xf
mov byte [ebp - 0xa10], 0
cmp esi, 0xffffffff
je 0x413656
mov dword [0], 0x2a
lea eax, [ebp - 0x98c]
push eax
call fcn.00411080
add esp, 4
mov esi, eax
mov dword [ebp - 0x74], eax
movq xmm0, qword [str.UGDN]
movq qword [ebp - 0x3b2], xmm0
mov ecx, dword [0x43fc74]
mov dword [ebp - 0x3aa], ecx
mov cx, word [0x43fc78]
mov word [ebp - 0x3a6], cx
test ch, ch
je 0x4137f1
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x4137c0
movaps xmm4, xmmword [0x4408d0]
mov eax, 4
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
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.6666]
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.3333333333333333]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.UGDN]
pxor xmm1, xmm0
movd dword [ebp - 0x3b2], xmm1
movaps xmm2, xmmword [0x43f790]
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.6666]
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 - 0x3ae]
pxor xmm1, xmm0
movd dword [ebp - 0x3ae], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
nop dword [eax]
mov eax, 0x4bda12f7
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x3b2], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x4137c0
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 0xf
lea ecx, [ebp - 0x3b2]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413818
sub ecx, edx
push ecx
lea eax, [ebp - 0x3b2]
push eax
lea ecx, [ebp - 0x470]
call fcn.00401820
lea ecx, [ebp - 0x470]
cmp dword [ebp - 0x45c], 0x10
mov edx, dword [ebp - 0x470]
cmovae ecx, edx
mov dword [ebp - 0x30], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x34], eax
cmp dword [esi + 0x14], 0x10
jb 0x41385e
mov esi, dword [esi]
mov dword [ebp - 0x74], esi
mov eax, dword [ebp - 0x460]
cmp eax, dword [ebp - 0x34]
ja 0x413942
test eax, eax
jne 0x413889
xor esi, esi
jmp 0x413945
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x438]
jmp 0x4135a1
mov edx, dword [ebp - 0x34]
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x38], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x34], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.004215b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x41393c
mov ecx, eax
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x460]
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 0x413bf4
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41391b
cmp esi, 0xfffffffd
je 0x413bf4
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41391b
cmp esi, 0xfffffffe
je 0x413bf4
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41391b
cmp esi, 0xffffffff
je 0x413bf4
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x413bf4
mov esi, dword [ebp - 0x24]
inc esi
mov eax, dword [ebp - 0x38]
sub eax, esi
push eax
push dword [ebp - 0x34]
push esi
call fcn.004215b0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4138b4
mov edx, dword [ebp - 0x470]
or esi, 0xffffffff
mov eax, dword [ebp - 0x45c]
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 0x41ef9a
push ecx
push edx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 0xf
mov byte [ebp - 0x470], 0
mov edx, dword [ebp - 0x978]
cmp edx, 0x10
jb 0x4139d0
inc edx
mov ecx, dword [ebp - 0x98c]
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 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x97c], 0
mov dword [ebp - 0x978], 0xf
mov byte [ebp - 0x98c], 0
cmp esi, 0xffffffff
je 0x4139fa
mov dword [0], 0x2a
lea eax, [ebp - 0x2a94]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x2c]
or esi, 0x30
mov dword [ebp - 0x2c], esi
mov ecx, dword [str.RN_DR8]
mov dword [ebp - 0x155], ecx
mov cx, word [0x43fc80]
mov word [ebp - 0x151], cx
test ch, ch
je 0x413a73
xor edx, edx
mov dword [ebp - 0x24], edx
nop dword [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x155], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x413a40
mov dword [ebp - 0x508], 0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4f4], 0xf
lea ecx, [ebp - 0x155]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413aa0
sub ecx, edx
push ecx
lea eax, [ebp - 0x155]
push eax
lea ecx, [ebp - 0x508]
call fcn.00401820
lea ecx, [ebp - 0x508]
cmp dword [ebp - 0x4f4], 0x10
cmovae ecx, dword [ebp - 0x508]
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413ade
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 0x413c05
lea eax, [ebp - 0x1c3c]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc0
mov dword [ebp - 0x2c], esi
movq xmm0, qword [str.rn_dr]
movq qword [ebp - 0x409], xmm0
mov cl, byte [0x43fc8c]
mov byte [ebp - 0x401], cl
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x409], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 9
jl 0x413b36
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4dc], 0xf
lea ecx, [ebp - 0x409]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413b90
sub ecx, edx
push ecx
lea eax, [ebp - 0x409]
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 - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413bd0
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 0x413c0b
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x413c12
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x74]
mov edx, dword [ebp - 0x470]
jmp 0x413945
mov esi, dword [ebp - 0x4f0]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x2c]
test al, al
jns 0x413c70
and eax, 0xffffff7f
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x4dc]
cmp ecx, 0x10
jb 0x413c55
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x413c48
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push ecx
push esi
call fcn.004206ea
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4dc], 0xf
mov byte [ebp - 0x4f0], 0
test al, 0x40
je 0x413c85
and eax, 0xffffffbf
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x1c3c]
call fcn.00401290
mov edx, dword [ebp - 0x4f4]
cmp edx, 0x10
jb 0x413cbf
inc edx
mov ecx, dword [ebp - 0x508]
mov eax, ecx
cmp edx, 0x1000
jb 0x413cb5
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4f4], 0xf
mov byte [ebp - 0x508], 0
mov esi, dword [ebp - 0x2c]
and esi, 0xffffffcf
lea ecx, [ebp - 0x2a94]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x413cfb
mov dword [0], 0x2a
lea eax, [ebp - 0x2ac4]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x300
mov dword [ebp - 0x2c], esi
mov ecx, dword [str.RPX_Y8]
mov dword [ebp - 0x15b], ecx
mov cx, word [0x43fc94]
mov word [ebp - 0x157], cx
test ch, ch
je 0x413d73
xor edx, edx
mov dword [ebp - 0x24], edx
nop dword [eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x15b], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x413d40
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x528], 0
mov dword [ebp - 0x524], 0xf
lea ecx, [ebp - 0x15b]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413da0
sub ecx, edx
push ecx
lea eax, [ebp - 0x15b]
push eax
lea ecx, [ebp - 0x538]
call fcn.00401820
lea ecx, [ebp - 0x538]
cmp dword [ebp - 0x524], 0x10
cmovae ecx, dword [ebp - 0x538]
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413dde
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 0x414014
lea eax, [ebp - 0x2aac]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc00
mov dword [ebp - 0x2c], esi
mov ecx, dword [str.fgpd]
mov esi, dword [0x43fc9c]
mov dword [ebp - 0x1b0], ecx
mov dword [ebp - 0x1ac], esi
cmp byte [0x43fc9f], 0
je 0x413f83
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x413f50
movaps xmm4, xmmword [0x4408d0]
mov eax, 4
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
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.6666]
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.3333333333333333]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x1b0], xmm1
movaps xmm2, xmmword [0x43f790]
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.6666]
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 - 0x1ac], xmm1
jmp 0x413f83
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x1b0], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 8
jl 0x413f50
mov dword [ebp - 0x520], 0
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x50c], 0xf
lea ecx, [ebp - 0x1b0]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413fb0
sub ecx, edx
push ecx
lea eax, [ebp - 0x1b0]
push eax
lea ecx, [ebp - 0x520]
call fcn.00401820
lea ecx, [ebp - 0x520]
cmp dword [ebp - 0x50c], 0x10
mov esi, dword [ebp - 0x520]
cmovae ecx, esi
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x413ff0
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 0x41401a
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x414021
mov esi, dword [ebp - 0x520]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x2c]
test eax, 0x800
je 0x414082
and eax, 0xfffff7ff
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x50c]
cmp ecx, 0x10
jb 0x414067
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x41405a
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push ecx
push esi
call fcn.004206ea
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x50c], 0xf
mov byte [ebp - 0x520], 0
test eax, 0x400
je 0x41409c
and eax, 0xfffffbff
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x2aac]
call fcn.00401290
mov edx, dword [ebp - 0x524]
cmp edx, 0x10
jb 0x4140d6
inc edx
mov ecx, dword [ebp - 0x538]
mov eax, ecx
cmp edx, 0x1000
jb 0x4140cc
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x528], 0
mov dword [ebp - 0x524], 0xf
mov byte [ebp - 0x538], 0
mov esi, dword [ebp - 0x2c]
and esi, 0xfffffcff
lea ecx, [ebp - 0x2ac4]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414115
mov dword [0], 0x2a
lea eax, [ebp - 0x2af4]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x3000
mov dword [ebp - 0x2c], esi
mov ecx, dword [0x43fca0]
mov dword [ebp - 0x104], ecx
cmp byte [0x43fca3], 0
je 0x414218
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x4141e5
movaps xmm3, xmmword [0x43f550]
movaps xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x4408d0]
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x4408d0]
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.6666]
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.3333333333333333]
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x104], xmm1
jmp 0x414218
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x104], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 4
jl 0x4141e5
mov dword [ebp - 0x550], 0
mov dword [ebp - 0x540], 0
mov dword [ebp - 0x53c], 0xf
lea ecx, [ebp - 0x104]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414240
sub ecx, edx
push ecx
lea eax, [ebp - 0x104]
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 - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41427e
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 0x414394
lea eax, [ebp - 0x2adc]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc000
mov dword [ebp - 0x2c], esi
mov ecx, dword [0x43fca4]
mov dword [ebp - 0x10d], ecx
mov cl, byte [0x43fca8]
mov byte [ebp - 0x109], cl
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x10d], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 5
jl 0x4142d2
mov dword [ebp - 0x4d8], 0
mov dword [ebp - 0x4c8], 0
mov dword [ebp - 0x4c4], 0xf
lea ecx, [ebp - 0x10d]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414330
sub ecx, edx
push ecx
lea eax, [ebp - 0x10d]
push eax
lea ecx, [ebp - 0x4d8]
call fcn.00401820
lea ecx, [ebp - 0x4d8]
cmp dword [ebp - 0x4c4], 0x10
mov esi, dword [ebp - 0x4d8]
cmovae ecx, esi
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414370
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 0x41439a
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x4143a1
mov esi, dword [ebp - 0x4d8]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x2c]
test eax, 0x8000
je 0x414402
and eax, 0xffff7fff
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x4c4]
cmp ecx, 0x10
jb 0x4143e7
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x4143da
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push ecx
push esi
call fcn.004206ea
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x4c8], 0
mov dword [ebp - 0x4c4], 0xf
mov byte [ebp - 0x4d8], 0
test eax, 0x4000
je 0x41441c
and eax, 0xffffbfff
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x2adc]
call fcn.00401290
mov edx, dword [ebp - 0x53c]
cmp edx, 0x10
jb 0x414456
inc edx
mov ecx, dword [ebp - 0x550]
mov eax, ecx
cmp edx, 0x1000
jb 0x41444c
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x540], 0
mov dword [ebp - 0x53c], 0xf
mov byte [ebp - 0x550], 0
mov esi, dword [ebp - 0x2c]
and esi, 0xffffcfff
lea ecx, [ebp - 0x2af4]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414495
mov dword [0], 0x2a
lea eax, [ebp - 0x2b24]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x30000
mov dword [ebp - 0x2c], esi
mov ecx, dword [str.rgx6rgxe]
mov dword [ebp - 0xd0], ecx
cmp byte [0x43fcaf], 0
je 0x414598
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x414565
movaps xmm3, xmmword [0x43f550]
movaps xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x4408d0]
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x4408d0]
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.6666]
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.3333333333333333]
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xd0], xmm1
jmp 0x414598
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xd0], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 4
jl 0x414565
mov dword [ebp - 0x580], 0
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], 0xf
lea ecx, [ebp - 0xd0]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4145c0
sub ecx, edx
push ecx
lea eax, [ebp - 0xd0]
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 - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4145fe
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 0x414724
lea eax, [ebp - 0x2b0c]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc0000
mov dword [ebp - 0x2c], esi
mov ecx, dword [0x43fcb0]
mov dword [ebp - 0x184], ecx
mov cx, word [0x43fcb4]
mov word [ebp - 0x180], cx
test ch, ch
je 0x414693
xor edx, edx
mov dword [ebp - 0x24], edx
nop dword [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x184], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x414660
mov dword [ebp - 0x568], 0
mov dword [ebp - 0x558], 0
mov dword [ebp - 0x554], 0xf
lea ecx, [ebp - 0x184]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4146c0
sub ecx, edx
push ecx
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x568]
call fcn.00401820
lea ecx, [ebp - 0x568]
cmp dword [ebp - 0x554], 0x10
mov esi, dword [ebp - 0x568]
cmovae ecx, esi
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414700
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 0x41472a
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x414731
mov esi, dword [ebp - 0x568]
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x2c]
test eax, 0x80000
je 0x414792
and eax, 0xfff7ffff
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x554]
cmp ecx, 0x10
jb 0x414777
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x41476a
add ecx, 0x23
mov esi, dword [esi - 4]
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push ecx
push esi
call fcn.004206ea
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x558], 0
mov dword [ebp - 0x554], 0xf
mov byte [ebp - 0x568], 0
test eax, 0x40000
je 0x4147ac
and eax, 0xfffbffff
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x2b0c]
call fcn.00401290
mov edx, dword [ebp - 0x56c]
cmp edx, 0x10
jb 0x4147e6
inc edx
mov ecx, dword [ebp - 0x580]
mov eax, ecx
cmp edx, 0x1000
jb 0x4147dc
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], 0xf
mov byte [ebp - 0x580], 0
mov esi, dword [ebp - 0x2c]
and esi, 0xfffcffff
lea ecx, [ebp - 0x2b24]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414825
mov dword [0], 0x2a
lea eax, [ebp - 0xc4c]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x300000
mov ecx, dword [str.RVWO7]
mov dword [ebp - 0x112], ecx
mov cl, byte [0x43fcbc]
mov byte [ebp - 0x10e], cl
xor edx, edx
mov dword [ebp - 0x24], edx
nop word [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x112], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 5
jl 0x414860
mov dword [ebp - 0x598], 0
mov dword [ebp - 0x588], 0
mov dword [ebp - 0x584], 0xf
lea ecx, [ebp - 0x112]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4148c0
sub ecx, edx
push ecx
lea eax, [ebp - 0x112]
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 - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4148fe
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 0x414aea
lea eax, [ebp - 0xc34]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc00000
mov ecx, dword [str.rvwo]
mov dword [ebp - 0xac], ecx
mov eax, dword [0x43fcc4]
mov dword [ebp - 0xa8], eax
cmp byte [0x43fcc7], 0
je 0x414aa3
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x414a70
movaps xmm4, xmmword [0x4408d0]
mov eax, 4
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
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.6666]
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.3333333333333333]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xac], xmm1
movaps xmm2, xmmword [0x43f790]
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.6666]
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 [0x43fcc4]
pxor xmm1, xmm0
movd dword [ebp - 0xa8], xmm1
jmp 0x414aa3
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xac], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 8
jl 0x414a70
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0xc1c]
call fcn.00404750
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x414ac3
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414ad1
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 0x414aee
mov byte [ebp - 0x25], 0
test esi, 0x800000
je 0x414b07
and esi, 0xff7fffff
lea ecx, [ebp - 0xc1c]
call fcn.00401290
test esi, 0x400000
je 0x414b20
and esi, 0xffbfffff
lea ecx, [ebp - 0xc34]
call fcn.00401290
mov edx, dword [ebp - 0x584]
cmp edx, 0x10
jb 0x414b5a
inc edx
mov ecx, dword [ebp - 0x598]
mov eax, ecx
cmp edx, 0x1000
jb 0x414b50
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x588], 0
mov dword [ebp - 0x584], 0xf
mov byte [ebp - 0x598], 0
and esi, 0xffcfffff
lea ecx, [ebp - 0xc4c]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414b96
mov dword [0], 0x2a
lea eax, [ebp - 0xc94]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x3000000
mov ecx, dword [0x43fcc8]
mov dword [ebp - 0x1a8], ecx
mov cx, word [0x43fccc]
mov word [ebp - 0x1a4], cx
test ch, ch
je 0x414c04
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x1a8], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x414bd1
mov dword [ebp - 0x5b0], 0
mov dword [ebp - 0x5a0], 0
mov dword [ebp - 0x59c], 0xf
lea ecx, [ebp - 0x1a8]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414c30
sub ecx, edx
push ecx
lea eax, [ebp - 0x1a8]
push eax
lea ecx, [ebp - 0x5b0]
call fcn.00401820
lea ecx, [ebp - 0x5b0]
cmp dword [ebp - 0x59c], 0x10
cmovae ecx, dword [ebp - 0x5b0]
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414c6e
mov eax, dword [eax]
push dword [ebp - 0x5a0]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x414d3d
lea eax, [ebp - 0xc7c]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc000000
movq xmm0, qword [0x43fcd0]
movq qword [ebp - 0xeb], xmm0
mov cl, byte [0x43fcd8]
mov byte [ebp - 0xe3], cl
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xeb], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 9
jl 0x414cc3
lea eax, [ebp - 0xeb]
push eax
lea ecx, [ebp - 0xc64]
call fcn.00404750
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x414d16
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414d24
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 0x414d41
mov byte [ebp - 0x25], 0
test esi, 0x8000000
je 0x414d5a
and esi, 0xf7ffffff
lea ecx, [ebp - 0xc64]
call fcn.00401290
test esi, 0x4000000
je 0x414d73
and esi, 0xfbffffff
lea ecx, [ebp - 0xc7c]
call fcn.00401290
mov edx, dword [ebp - 0x59c]
cmp edx, 0x10
jb 0x414dad
inc edx
mov ecx, dword [ebp - 0x5b0]
mov eax, ecx
cmp edx, 0x1000
jb 0x414da3
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x5a0], 0
mov dword [ebp - 0x59c], 0xf
mov byte [ebp - 0x5b0], 0
and esi, 0xfcffffff
lea ecx, [ebp - 0xc94]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x414de9
mov dword [0], 0x2a
lea eax, [ebp - 0xcdc]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x30000000
mov ecx, dword [str._GEC8]
mov dword [ebp - 0x18a], ecx
mov cx, word [0x43fce0]
mov word [ebp - 0x186], cx
test ch, ch
je 0x414e57
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x18a], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x414e24
mov dword [ebp - 0x5c8], 0
mov dword [ebp - 0x5b8], 0
mov dword [ebp - 0x5b4], 0xf
lea ecx, [ebp - 0x18a]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414e80
sub ecx, edx
push ecx
lea eax, [ebp - 0x18a]
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 - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x414ebe
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 0x414f8d
lea eax, [ebp - 0xcc4]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc0000000
movq xmm0, qword [str.gec]
movq qword [ebp - 0xeb], xmm0
mov cl, byte [0x43fcec]
mov byte [ebp - 0xe3], cl
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xeb], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 9
jl 0x414f13
lea eax, [ebp - 0xeb]
push eax
lea ecx, [ebp - 0xcac]
call fcn.00404750
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x414f66
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x414f74
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 0x414f91
mov byte [ebp - 0x25], 0
test esi, esi
jns 0x414fa6
and esi, 0x7fffffff
lea ecx, [ebp - 0xcac]
call fcn.00401290
test esi, 0x40000000
je 0x414fb9
lea ecx, [ebp - 0xcc4]
call fcn.00401290
mov edx, dword [ebp - 0x5b4]
cmp edx, 0x10
jb 0x414ff3
inc edx
mov ecx, dword [ebp - 0x5c8]
mov eax, ecx
cmp edx, 0x1000
jb 0x414fe9
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x5b8], 0
mov dword [ebp - 0x5b4], 0xf
mov byte [ebp - 0x5c8], 0
lea ecx, [ebp - 0xcdc]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x415029
mov dword [0], 0x2a
lea eax, [ebp - 0xd24]
push eax
call fcn.00411080
add esp, 4
mov esi, eax
mov dword [ebp - 0x34], eax
mov ecx, dword [str.duyrj9]
mov dword [ebp - 0x1a2], ecx
mov cx, word [0x43fcf4]
mov word [ebp - 0x19e], cx
mov cl, byte [0x43fcf6]
mov byte [ebp - 0x19c], cl
xor edx, edx
mov dword [ebp - 0x24], edx
nop dword [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x1a2], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 7
jl 0x415070
mov dword [ebp - 0x5e0], 0
mov dword [ebp - 0x5d0], 0
mov dword [ebp - 0x5cc], 0xf
lea ecx, [ebp - 0x1a2]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4150d0
sub ecx, edx
push ecx
lea eax, [ebp - 0x1a2]
push eax
lea ecx, [ebp - 0x5e0]
call fcn.00401820
lea eax, [ebp - 0x5e0]
cmp dword [ebp - 0x5cc], 0x10
cmovae eax, dword [ebp - 0x5e0]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x41510e
mov esi, dword [esi]
mov dword [ebp - 0x34], esi
mov esi, 3
mov dword [ebp - 0x2c], esi
push dword [ebp - 0x5d0]
push eax
push 0
push ecx
push dword [ebp - 0x34]
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4151f3
lea eax, [ebp - 0xd0c]
push eax
call fcn.00410f00
add esp, 4
mov esi, eax
mov dword [ebp - 0x34], eax
movq xmm0, qword [str.duyrj]
movq qword [ebp - 0xec], xmm0
mov cx, word [0x43fd00]
mov word [ebp - 0xe4], cx
test ch, ch
je 0x4151a3
xor edx, edx
mov dword [ebp - 0x24], edx
nop
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xec], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xa
jl 0x415170
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0xcf4]
call fcn.00404750
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4151c0
mov eax, dword [eax]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x4151ce
mov esi, dword [esi]
mov dword [ebp - 0x34], esi
mov esi, 0xf
mov dword [ebp - 0x2c], esi
push edx
push eax
push 0
push ecx
push dword [ebp - 0x34]
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4151f3
mov byte [ebp - 0x25], 1
mov eax, esi
jmp 0x4151fe
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x2c]
test al, 8
je 0x415212
and eax, 0xfffffff7
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xcf4]
call fcn.00401290
mov eax, dword [ebp - 0x2c]
test al, 4
je 0x415227
and eax, 0xfffffffb
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xd0c]
call fcn.00401290
mov edx, dword [ebp - 0x5cc]
cmp edx, 0x10
jb 0x415261
inc edx
mov ecx, dword [ebp - 0x5e0]
mov eax, ecx
cmp edx, 0x1000
jb 0x415257
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x5d0], 0
mov dword [ebp - 0x5cc], 0xf
mov byte [ebp - 0x5e0], 0
mov esi, dword [ebp - 0x2c]
and esi, 0xfffffffc
lea ecx, [ebp - 0xd24]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x41529d
mov dword [0], 0x2a
lea eax, [ebp - 0xd6c]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x30
mov dword [ebp - 0x2c], esi
mov ecx, dword [0x43fd04]
mov dword [ebp - 0x117], ecx
mov cl, byte [0x43fd08]
mov byte [ebp - 0x113], cl
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x117], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 5
jl 0x4152d2
mov dword [ebp - 0x5f8], 0
mov dword [ebp - 0x5e8], 0
mov dword [ebp - 0x5e4], 0xf
lea ecx, [ebp - 0x117]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415330
sub ecx, edx
push ecx
lea eax, [ebp - 0x117]
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 - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41536e
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 0x41555d
lea eax, [ebp - 0xd54]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc0
mov dword [ebp - 0x2c], esi
mov ecx, dword [0x43fd0c]
mov esi, dword [0x43fd10]
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xa8], esi
cmp byte [0x43fd13], 0
je 0x415513
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x4154e0
movaps xmm4, xmmword [0x4408d0]
mov eax, 4
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
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.6666]
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.3333333333333333]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xac], xmm1
movaps xmm2, xmmword [0x43f790]
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.6666]
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 - 0xa8], xmm1
jmp 0x415513
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xac], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 8
jl 0x4154e0
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0xd3c]
call fcn.00404750
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x415530
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x41553e
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41555d
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x415564
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x2c]
test al, al
jns 0x41557e
and eax, 0xffffff7f
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xd3c]
call fcn.00401290
mov eax, dword [ebp - 0x2c]
test al, 0x40
je 0x415593
and eax, 0xffffffbf
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xd54]
call fcn.00401290
mov edx, dword [ebp - 0x5e4]
cmp edx, 0x10
jb 0x4155cd
inc edx
mov ecx, dword [ebp - 0x5f8]
mov eax, ecx
cmp edx, 0x1000
jb 0x4155c3
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x5e8], 0
mov dword [ebp - 0x5e4], 0xf
mov byte [ebp - 0x5f8], 0
mov esi, dword [ebp - 0x2c]
and esi, 0xffffffcf
lea ecx, [ebp - 0xd6c]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x415609
mov dword [0], 0x2a
lea eax, [ebp - 0xdb4]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x300
mov dword [ebp - 0x2c], esi
movq xmm0, qword [0x43fd14]
movq qword [ebp - 0x3a4], xmm0
mov ecx, dword [0x43fd1c]
mov dword [ebp - 0x39c], ecx
mov cx, word [0x43fd20]
mov word [ebp - 0x398], cx
test ch, ch
je 0x4157a7
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x415776
movaps xmm4, xmmword [0x4408d0]
mov eax, 4
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
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.6666]
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.3333333333333333]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x43fd14]
pxor xmm1, xmm0
movd dword [ebp - 0x3a4], xmm1
movaps xmm2, xmmword [0x43f790]
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.6666]
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 - 0x3a0]
pxor xmm1, xmm0
movd dword [ebp - 0x3a0], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
mov eax, 0x4bda12f7
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x3a4], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x415776
mov dword [ebp - 0x610], 0
mov dword [ebp - 0x600], 0
mov dword [ebp - 0x5fc], 0xf
lea ecx, [ebp - 0x3a4]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4157d0
sub ecx, edx
push ecx
lea eax, [ebp - 0x3a4]
push eax
lea ecx, [ebp - 0x610]
call fcn.00401820
lea ecx, [ebp - 0x610]
cmp dword [ebp - 0x5fc], 0x10
cmovae ecx, dword [ebp - 0x610]
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41580e
mov eax, dword [eax]
push dword [ebp - 0x600]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4158ed
lea eax, [ebp - 0xd9c]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc00
mov dword [ebp - 0x2c], esi
mov ecx, dword [str.__XYY8]
mov dword [ebp - 0xb2], ecx
mov cx, word [0x43fd28]
mov word [ebp - 0xae], cx
test ch, ch
je 0x4158a3
xor edx, edx
mov dword [ebp - 0x24], edx
nop dword [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xb2], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 6
jl 0x415870
lea eax, [ebp - 0xb2]
push eax
lea ecx, [ebp - 0xd84]
call fcn.00404750
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4158c0
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x4158ce
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4158ed
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x4158f4
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x2c]
test eax, 0x800
je 0x415911
and eax, 0xfffff7ff
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xd84]
call fcn.00401290
mov eax, dword [ebp - 0x2c]
test eax, 0x400
je 0x41592b
and eax, 0xfffffbff
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xd9c]
call fcn.00401290
mov edx, dword [ebp - 0x5fc]
cmp edx, 0x10
jb 0x415965
inc edx
mov ecx, dword [ebp - 0x610]
mov eax, ecx
cmp edx, 0x1000
jb 0x41595b
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x600], 0
mov dword [ebp - 0x5fc], 0xf
mov byte [ebp - 0x610], 0
mov esi, dword [ebp - 0x2c]
and esi, 0xfffffcff
lea ecx, [ebp - 0xdb4]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x4159a4
mov dword [0], 0x2a
lea eax, [ebp - 0xdfc]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x3000
mov dword [ebp - 0x2c], esi
movq xmm0, qword [str.rPX_YQJNI_IQM_]
movq qword [ebp - 0x396], xmm0
mov ecx, dword [0x43fd34]
mov dword [ebp - 0x38e], ecx
mov cx, word [0x43fd38]
mov word [ebp - 0x38a], cx
test ch, ch
je 0x415b42
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x415b11
movaps xmm4, xmmword [0x4408d0]
mov eax, 4
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
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.6666]
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.3333333333333333]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.rPX_YQJNI_IQM_]
pxor xmm1, xmm0
movd dword [ebp - 0x396], xmm1
movaps xmm2, xmmword [0x43f790]
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.6666]
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 - 0x392]
pxor xmm1, xmm0
movd dword [ebp - 0x392], xmm1
mov edx, 8
mov dword [ebp - 0x24], edx
mov eax, 0x4bda12f7
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x396], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xe
jl 0x415b11
mov dword [ebp - 0x628], 0
mov dword [ebp - 0x618], 0
mov dword [ebp - 0x614], 0xf
lea ecx, [ebp - 0x396]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415b70
sub ecx, edx
push ecx
lea eax, [ebp - 0x396]
push eax
lea ecx, [ebp - 0x628]
call fcn.00401820
lea ecx, [ebp - 0x628]
cmp dword [ebp - 0x614], 0x10
cmovae ecx, dword [ebp - 0x628]
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x415bae
mov eax, dword [eax]
push dword [ebp - 0x618]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415c8d
lea eax, [ebp - 0xde4]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc000
mov dword [ebp - 0x2c], esi
mov ecx, dword [str.gqfbrj9]
mov dword [ebp - 0x100], ecx
mov cx, word [0x43fd40]
mov word [ebp - 0xfc], cx
mov cl, byte [0x43fd42]
mov byte [ebp - 0xfa], cl
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x100], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 7
jl 0x415c10
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0xdcc]
call fcn.00404750
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x415c60
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x415c6e
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x415c8d
mov byte [ebp - 0x25], 1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x415c94
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x2c]
test eax, 0x8000
je 0x415cb1
and eax, 0xffff7fff
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xdcc]
call fcn.00401290
mov eax, dword [ebp - 0x2c]
test eax, 0x4000
je 0x415ccb
and eax, 0xffffbfff
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0xde4]
call fcn.00401290
mov edx, dword [ebp - 0x614]
cmp edx, 0x10
jb 0x415d05
inc edx
mov ecx, dword [ebp - 0x628]
mov eax, ecx
cmp edx, 0x1000
jb 0x415cfb
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ef9a
push edx
push ecx
call fcn.004206ea
add esp, 8
mov dword [ebp - 0x618], 0
mov dword [ebp - 0x614], 0xf
mov byte [ebp - 0x628], 0
mov esi, dword [ebp - 0x2c]
and esi, 0xffffcfff
lea ecx, [ebp - 0xdfc]
call fcn.00401290
cmp byte [ebp - 0x25], 0
je 0x415d44
mov dword [0], 0x2a
lea eax, [ebp - 0xe5c]
push eax
call fcn.00411080
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0x30000
mov ecx, dword [str.rZ_W7]
mov dword [ebp - 0x58], ecx
mov cl, byte [0x43fd48]
mov byte [ebp - 0x54], cl
xor edx, edx
mov dword [ebp - 0x24], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x24]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
mov edx, dword [ebp - 0x24]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x58], cl
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 5
jl 0x415d73
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0xe44]
call fcn.00404750
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x415dc0
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x415dce
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 0x415fba
lea eax, [ebp - 0xe2c]
push eax
call fcn.00410f00
add esp, 4
mov dword [ebp - 0x30], eax
or esi, 0xc0000
mov ecx, dword [str.rzw]
mov dword [ebp - 0xac], ecx
mov eax, dword [0x43fd50]
mov dword [ebp - 0xa8], eax
cmp byte [0x43fd53], 0
je 0x415f73
xor edx, edx
mov dword [ebp - 0x24], edx
cmp edi, 2
jl 0x415f40
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0xe14]
call fcn.00404750
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x14], 0x10
jb 0x415f93
mov byte [ebp - 0x25], 0
test esi, 0x80000
je 0x415fd7
and esi, 0xfff7ffff
lea ecx, [ebp - 0xe14]
call fcn.00401290
test esi, 0x40000
je 0x415fea
call fcn.00424bbf
push edi
lea ecx, [ebp - 0xaac]
call fcn.00405630
push 0x44d80c
lea eax, [ebp - 0xaac]
push eax
call fcn.00421540
push edi
lea ecx, [ebp - 0xab8]
call fcn.00405630
push 0x44d80c
lea eax, [ebp - 0xab8]
push eax
call fcn.00421540
push edi
lea ecx, [ebp - 0x283c]
call fcn.00404750
mov esi, eax
lea eax, [ebp - 0x3cc]
push eax
lea ecx, [ebp - 0x2824]
call fcn.00408ba0
push esi
push eax
lea eax, [ebp - 0x280c]
push eax
call fcn.00407300
push dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0x27f4]
push eax
call fcn.00407300
push dword [ebp - 0xd4]
push eax
lea eax, [ebp - 0x27dc]
push eax
call fcn.00407300
push dword [ebp - 0xc8]
push eax
lea eax, [ebp - 0x27c4]
push eax
call fcn.00407300
push dword [ebp - 0xcc]
push eax
lea eax, [ebp - 0x27ac]
push eax
call fcn.00407300
push dword [ebp - 0x108]
push eax
lea eax, [ebp - 0x2794]
push eax
call fcn.00407300
add esp, 0x48
push dword [ebp - 0xbc]
push eax
lea eax, [ebp - 0x277c]
push eax
call fcn.00407300
push dword [ebp - 0xc0]
push eax
lea eax, [ebp - 0x2764]
push eax
call fcn.00407300
push dword [ebp - 0xc4]
push eax
lea eax, [ebp - 0x274c]
push eax
call fcn.00407300
push dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x2734]
push eax
call fcn.00407300
push dword [ebp - 0x38]
push eax
lea eax, [ebp - 0x271c]
push eax
call fcn.00407300
push dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x2704]
push eax
call fcn.00407300
add esp, 0x48
mov ecx, eax
call fcn.004062d0
push eax
lea eax, [ebp - 0x26ec]
push eax
call fcn.004058a0
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.0040bc00
add esp, 4
push 0
call fcn.0042686f
int3