Function at 0x415f00
Capabilities:
Check os version
Create thread
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 0x43ee40
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
sub esp, 0xc
mov eax, 0x1864
call fcn.00421440
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x48], 0
movups xmm0, xmmword [0x440dfc]
movups xmmword [ebp - 0x731], xmm0
movups xmm0, xmmword [str._0_9]
movups xmmword [ebp - 0x721], xmm0
movups xmm0, xmmword [0x440e1c]
movups xmmword [ebp - 0x711], xmm0
movq xmm0, qword [str.M_a_n_vI]
movq qword [ebp - 0x701], xmm0
mov al, byte [0x440e34]
mov byte [ebp - 0x6f9], al
xor edx, edx
mov dword [ebp - 0x9c], edx
cmp dword [0x4527a8], 2
jl 0x416100
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440a00]
mov esi, 5
movd xmm5, esi
movaps xmm6, xmmword [0x4409f0]
mov esi, 0x1f
movd xmm7, esi
movaps xmm0, xmmword [str.3333333333333333M]
movaps xmmword [ebp - 0x80], xmm0
mov ecx, dword [ebp - 0x80]
nop dword [eax]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x731]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x731], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x72d]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x72d], xmm1
add edx, 8
cmp edx, 0x38
jl 0x415fe0
mov dword [ebp - 0x9c], edx
cmp edx, 0x39
jge 0x41613d
nop word [eax + eax]
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x9c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x9c]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x731], cl
inc edx
mov dword [ebp - 0x9c], edx
cmp edx, 0x39
jl 0x416100
mov dword [ebp - 0x528], 0
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x514], 0xf
lea ecx, [ebp - 0x731]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416164
sub ecx, edx
push ecx
lea eax, [ebp - 0x731]
push eax
lea ecx, [ebp - 0x528]
call fcn.00401820
lea eax, [ebp - 0x528]
cmp dword [ebp - 0x514], 0x10
cmovae eax, dword [ebp - 0x528]
push 1
push 0x40
push 1
push eax
lea ecx, [ebp - 0x9a0]
call fcn.0040c3f0
mov eax, dword [ebp - 0x9a0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x9a0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x9a4], eax
mov eax, dword [ebp - 0x9a0]
mov eax, dword [eax + 4]
mov esi, dword [ebp + eax - 0x994]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x9a0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x9a4], eax
lea ecx, [ebp - 0x990]
call fcn.00402580
mov eax, dword [ebp - 0x9a0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x9a0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x9a4], eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
lea eax, [ebp - 0x930]
push eax
call fcn.00420621
add esp, 4
mov edx, dword [ebp - 0x514]
cmp edx, 0x10
jb 0x416280
inc edx
mov ecx, dword [ebp - 0x528]
mov eax, ecx
cmp edx, 0x1000
jb 0x416276
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x514], 0xf
mov byte [ebp - 0x528], 0
test esi, esi
jne 0x4162a9
mov dword [0], 0x2a
push 1
push str._a_z_8_
lea ecx, [ebp - 0x8dc]
call fcn.0040c5f0
push 1
push str._A_Z_8_
lea ecx, [ebp - 0x8c8]
call fcn.0040c5f0
push 1
push str.d6_
lea ecx, [ebp - 0x8b4]
call fcn.0040c5f0
lea eax, [ebp - 0x6c8]
push eax
call fcn.004148e0
add esp, 4
mov esi, eax
mov dword [ebp - 0x34], eax
movq xmm0, qword [str.cU_Z]
movq qword [ebp - 0x280], xmm0
mov cx, word [0x440e40]
mov word [ebp - 0x278], cx
mov cl, byte [0x440e42]
mov byte [ebp - 0x276], cl
xor edx, edx
mov dword [ebp - 0x30], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x280], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0xb
jl 0x416322
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x368], 0
mov dword [ebp - 0x364], 0xf
lea ecx, [ebp - 0x280]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416373
sub ecx, edx
push ecx
lea eax, [ebp - 0x280]
push eax
lea ecx, [ebp - 0x378]
call fcn.00401820
lea ecx, [ebp - 0x378]
cmp dword [ebp - 0x364], 0x10
cmovae ecx, dword [ebp - 0x378]
mov dword [ebp - 0x28], ecx
mov edx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x4163b4
mov esi, dword [esi]
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 0x368]
cmp eax, edx
ja 0x416474
test eax, eax
jne 0x4163cd
xor edi, edi
jmp 0x416477
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x40], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x30], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
je 0x416474
mov ecx, edi
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x368]
sub esi, 4
jb 0x416415
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41641e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x416404
cmp esi, 0xfffffffc
je 0x41661e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41645b
cmp esi, 0xfffffffd
je 0x41661e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41645b
cmp esi, 0xfffffffe
je 0x41661e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41645b
cmp esi, 0xffffffff
je 0x41661e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x41661e
inc edi
mov eax, dword [ebp - 0x40]
sub eax, edi
push eax
push dword [ebp - 0x30]
push edi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
jne 0x4163f4
or edi, 0xffffffff
mov eax, dword [ebp - 0x364]
cmp eax, 0x10
jb 0x4164b3
lea ecx, [eax + 1]
mov edx, dword [ebp - 0x378]
mov eax, edx
cmp ecx, 0x1000
jb 0x4164a9
add ecx, 0x23
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push ecx
push edx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x368], 0
mov dword [ebp - 0x364], 0xf
mov byte [ebp - 0x378], 0
mov edx, dword [ebp - 0x6b4]
cmp edx, 0x10
jb 0x416508
inc edx
mov ecx, dword [ebp - 0x6c8]
mov eax, ecx
cmp edx, 0x1000
jb 0x4164fe
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x6b8], 0
mov dword [ebp - 0x6b4], 0xf
mov byte [ebp - 0x6c8], 0
cmp edi, 0xffffffff
je 0x416532
mov dword [0], 0x2a
lea eax, [ebp - 0x6e0]
push eax
call fcn.004148e0
add esp, 4
mov esi, eax
mov dword [ebp - 0x34], eax
mov ecx, dword [str.TQZDP_9]
mov dword [ebp - 0x183], ecx
mov cx, word [0x440e48]
mov word [ebp - 0x17f], cx
mov cl, byte [0x440e4a]
mov byte [ebp - 0x17d], cl
xor edx, edx
mov dword [ebp - 0x30], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x183], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 7
jl 0x416571
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], 0xf
lea ecx, [ebp - 0x183]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4165c2
sub ecx, edx
push ecx
lea eax, [ebp - 0x183]
push eax
lea ecx, [ebp - 0x2a0]
call fcn.00401820
lea edx, [ebp - 0x2a0]
cmp dword [ebp - 0x28c], 0x10
mov eax, dword [ebp - 0x2a0]
cmovae edx, eax
mov dword [ebp - 0x28], edx
mov edi, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x416605
mov esi, dword [esi]
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x290]
cmp ecx, edi
ja 0x4166d6
test ecx, ecx
jne 0x416626
xor edi, edi
jmp 0x4166d9
sub edi, dword [ebp - 0x34]
jmp 0x416477
mov eax, esi
sub eax, ecx
inc edi
add eax, edi
mov dword [ebp - 0x40], eax
movsx ecx, byte [edx]
mov dword [ebp - 0x30], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
je 0x4166d0
nop dword [eax]
mov ecx, edi
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x290]
sub esi, 4
jb 0x416671
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41667a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x416660
cmp esi, 0xfffffffc
je 0x4169bc
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4166b7
cmp esi, 0xfffffffd
je 0x4169bc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4166b7
cmp esi, 0xfffffffe
je 0x4169bc
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4166b7
cmp esi, 0xffffffff
je 0x4169bc
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4169bc
inc edi
mov eax, dword [ebp - 0x40]
sub eax, edi
push eax
push dword [ebp - 0x30]
push edi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
jne 0x416650
mov eax, dword [ebp - 0x2a0]
or edi, 0xffffffff
mov ecx, dword [ebp - 0x28c]
cmp ecx, 0x10
jb 0x416713
inc ecx
mov edx, eax
cmp ecx, 0x1000
jb 0x416709
add ecx, 0x23
mov eax, dword [eax - 4]
mov dword [ebp - 0x28], eax
sub edx, eax
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x419950
mov eax, dword [ebp - 0x28]
push ecx
push eax
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], 0xf
mov byte [ebp - 0x2a0], 0
mov edx, dword [ebp - 0x6cc]
cmp edx, 0x10
jb 0x416768
inc edx
mov ecx, dword [ebp - 0x6e0]
mov eax, ecx
cmp edx, 0x1000
jb 0x41675e
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x6d0], 0
mov dword [ebp - 0x6cc], 0xf
mov byte [ebp - 0x6e0], 0
cmp edi, 0xffffffff
je 0x416792
mov dword [0], 0x2a
lea eax, [ebp - 0x680]
push eax
call fcn.004148e0
add esp, 4
mov esi, eax
mov dword [ebp - 0x30], eax
movq xmm0, qword [str.UGDN]
movq qword [ebp - 0x1fc], xmm0
mov ecx, dword [0x440e54]
mov dword [ebp - 0x1f4], ecx
mov cx, word [0x440e58]
mov word [ebp - 0x1f0], cx
test ch, ch
je 0x416938
xor edx, edx
mov dword [ebp - 0x34], edx
cmp dword [0x4527a8], 2
jl 0x416904
movaps xmm4, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x440580]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
mov eax, dword [str.3333333333333333M]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.UGDN]
pxor xmm1, xmm0
movd dword [ebp - 0x1fc], xmm1
movaps xmm2, xmmword [0x4406f0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x1f8]
pxor xmm1, xmm0
movd dword [ebp - 0x1f8], xmm1
mov edx, 8
mov dword [ebp - 0x34], edx
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x34]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x34]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x1fc], cl
inc edx
mov dword [ebp - 0x34], edx
cmp edx, 0xe
jl 0x416904
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea ecx, [ebp - 0x1fc]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416960
sub ecx, edx
push ecx
lea eax, [ebp - 0x1fc]
push eax
lea ecx, [ebp - 0x2b8]
call fcn.00401820
lea edx, [ebp - 0x2b8]
cmp dword [ebp - 0x2a4], 0x10
mov eax, dword [ebp - 0x2b8]
cmovae edx, eax
mov dword [ebp - 0x28], edx
mov edi, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x4169a3
mov esi, dword [esi]
mov dword [ebp - 0x30], esi
mov ecx, dword [ebp - 0x2a8]
cmp ecx, edi
ja 0x416a77
test ecx, ecx
jne 0x4169ca
xor edi, edi
jmp 0x416a7a
sub edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2a0]
jmp 0x4166d9
mov eax, esi
sub eax, ecx
inc edi
add eax, edi
mov dword [ebp - 0x40], eax
movsx ecx, byte [edx]
mov dword [ebp - 0x34], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
je 0x416a71
mov ecx, edi
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2a8]
sub esi, 4
jb 0x416a12
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x416a1b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x416a01
cmp esi, 0xfffffffc
je 0x417255
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x416a58
cmp esi, 0xfffffffd
je 0x417255
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x416a58
cmp esi, 0xfffffffe
je 0x417255
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x416a58
cmp esi, 0xffffffff
je 0x417255
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x417255
inc edi
mov eax, dword [ebp - 0x40]
sub eax, edi
push eax
push dword [ebp - 0x34]
push edi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
jne 0x4169f1
mov eax, dword [ebp - 0x2b8]
or edi, 0xffffffff
mov ecx, dword [ebp - 0x2a4]
cmp ecx, 0x10
jb 0x416ab4
inc ecx
mov edx, eax
cmp ecx, 0x1000
jb 0x416aaa
add ecx, 0x23
mov eax, dword [eax - 4]
mov dword [ebp - 0x28], eax
sub edx, eax
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x419950
mov eax, dword [ebp - 0x28]
push ecx
push eax
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
mov byte [ebp - 0x2b8], 0
mov edx, dword [ebp - 0x66c]
cmp edx, 0x10
jb 0x416b09
inc edx
mov ecx, dword [ebp - 0x680]
mov eax, ecx
cmp edx, 0x1000
jb 0x416aff
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x670], 0
mov dword [ebp - 0x66c], 0xf
mov byte [ebp - 0x680], 0
cmp edi, 0xffffffff
je 0x416b33
mov dword [0], 0x2a
lea eax, [ebp - 0x6b0]
push eax
call fcn.004148e0
add esp, 4
mov esi, eax
mov dword [ebp - 0x40], eax
mov ecx, dword [str.RN_DR8]
mov dword [ebp - 0x189], ecx
mov cx, word [0x440e60]
mov word [ebp - 0x185], cx
test ch, ch
je 0x416b9a
xor edx, edx
mov dword [ebp - 0x30], edx
nop word [eax + eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x189], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 6
jl 0x416b70
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2c0], 0
mov dword [ebp - 0x2bc], 0xf
lea ecx, [ebp - 0x189]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416bc1
sub ecx, edx
push ecx
lea eax, [ebp - 0x189]
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00401820
lea ecx, [ebp - 0x2d0]
cmp dword [ebp - 0x2bc], 0x10
cmovae ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x28], ecx
mov edx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x416c02
mov esi, dword [esi]
mov dword [ebp - 0x40], esi
mov eax, dword [ebp - 0x2c0]
cmp eax, edx
ja 0x416cc0
test eax, eax
je 0x417277
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x30], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x34], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
je 0x416cc0
nop
mov ecx, edi
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c0]
sub esi, 4
jb 0x416c61
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x416c6a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x416c50
cmp esi, 0xfffffffc
je 0x417263
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x416ca7
cmp esi, 0xfffffffd
je 0x417263
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x416ca7
cmp esi, 0xfffffffe
je 0x417263
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x416ca7
cmp esi, 0xffffffff
je 0x417263
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x417263
inc edi
mov eax, dword [ebp - 0x30]
sub eax, edi
push eax
push dword [ebp - 0x34]
push edi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
jne 0x416c40
mov eax, 3
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x21], 0
test al, 8
je 0x416d2e
and eax, 0xfffffff7
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x37c]
cmp edx, 0x10
jb 0x416d13
inc edx
mov ecx, dword [ebp - 0x390]
mov eax, ecx
cmp edx, 0x1000
jb 0x416d06
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x380], 0
mov dword [ebp - 0x37c], 0xf
mov byte [ebp - 0x390], 0
test al, 4
je 0x416d8d
and eax, 0xfffffffb
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x654]
cmp edx, 0x10
jb 0x416d72
inc edx
mov ecx, dword [ebp - 0x668]
mov eax, ecx
cmp edx, 0x1000
jb 0x416d68
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x658], 0
mov dword [ebp - 0x654], 0xf
mov byte [ebp - 0x668], 0
mov edx, dword [ebp - 0x2bc]
cmp edx, 0x10
jb 0x416dc7
inc edx
mov ecx, dword [ebp - 0x2d0]
mov eax, ecx
cmp edx, 0x1000
jb 0x416dbd
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x2c0], 0
mov dword [ebp - 0x2bc], 0xf
mov byte [ebp - 0x2d0], 0
mov esi, dword [ebp - 0x34]
and esi, 0xfffffffc
mov edx, dword [ebp - 0x69c]
cmp edx, 0x10
jb 0x416e22
inc edx
mov ecx, dword [ebp - 0x6b0]
mov eax, ecx
cmp edx, 0x1000
jb 0x416e18
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x6a0], 0
mov dword [ebp - 0x69c], 0xf
mov byte [ebp - 0x6b0], 0
cmp byte [ebp - 0x21], 0
je 0x416e4d
mov dword [0], 0x2a
lea eax, [ebp - 0x6f8]
push eax
call fcn.004148e0
add esp, 4
mov edi, eax
mov dword [ebp - 0x28], eax
or esi, 0x30
mov dword [ebp - 0x34], esi
mov ecx, dword [str.RPX_Y8]
mov dword [ebp - 0x18f], ecx
mov cx, word [0x440e74]
mov word [ebp - 0x18b], cx
test ch, ch
je 0x416eba
xor edx, edx
mov dword [ebp - 0x40], edx
nop word [eax + eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x40]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x18f], cl
inc edx
mov dword [ebp - 0x40], edx
cmp edx, 6
jl 0x416e90
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2ec], 0xf
lea ecx, [ebp - 0x18f]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416ee1
sub ecx, edx
push ecx
lea eax, [ebp - 0x18f]
push eax
lea ecx, [ebp - 0x300]
call fcn.00401820
lea ecx, [ebp - 0x300]
cmp dword [ebp - 0x2ec], 0x10
cmovae ecx, dword [ebp - 0x300]
mov dword [ebp - 0x40], ecx
mov edx, dword [edi + 0x10]
cmp dword [edi + 0x14], 0x10
jb 0x416f22
mov edi, dword [edi]
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x2f0]
cmp eax, edx
ja 0x416fee
test eax, eax
je 0x41742b
sub edx, eax
lea eax, [edx + 1]
add eax, edi
mov dword [ebp - 0x98], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x3c], ecx
sub eax, edi
push eax
push ecx
push edi
call fcn.00422360
add esp, 0xc
mov dword [ebp - 0x30], eax
test eax, eax
je 0x416fee
mov ecx, eax
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x2f0]
sub edi, 4
jb 0x416f84
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x416f8d
add ecx, 4
add edx, 4
sub edi, 4
jae 0x416f73
cmp edi, 0xfffffffc
je 0x417418
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x416fca
cmp edi, 0xfffffffd
je 0x417418
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x416fca
cmp edi, 0xfffffffe
je 0x417418
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x416fca
cmp edi, 0xffffffff
je 0x417418
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x417418
mov ecx, dword [ebp - 0x30]
inc ecx
mov eax, dword [ebp - 0x98]
sub eax, ecx
push eax
push dword [ebp - 0x3c]
push ecx
call fcn.00422360
add esp, 0xc
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x416f63
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x21], 0
test al, al
jns 0x41705c
and eax, 0xffffff7f
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x2d4]
cmp edx, 0x10
jb 0x417041
inc edx
mov ecx, dword [ebp - 0x2e8]
mov eax, ecx
cmp edx, 0x1000
jb 0x417034
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2d4], 0xf
mov byte [ebp - 0x2e8], 0
test al, 0x40
je 0x4170bb
and eax, 0xffffffbf
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x684]
cmp edx, 0x10
jb 0x4170a0
inc edx
mov ecx, dword [ebp - 0x698]
mov eax, ecx
cmp edx, 0x1000
jb 0x417096
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x688], 0
mov dword [ebp - 0x684], 0xf
mov byte [ebp - 0x698], 0
mov edx, dword [ebp - 0x2ec]
cmp edx, 0x10
jb 0x4170f5
inc edx
mov ecx, dword [ebp - 0x300]
mov eax, ecx
cmp edx, 0x1000
jb 0x4170eb
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2ec], 0xf
mov byte [ebp - 0x300], 0
mov esi, dword [ebp - 0x34]
and esi, 0xffffffcf
mov edx, dword [ebp - 0x6e4]
cmp edx, 0x10
jb 0x417150
inc edx
mov ecx, dword [ebp - 0x6f8]
mov eax, ecx
cmp edx, 0x1000
jb 0x417146
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x6e8], 0
mov dword [ebp - 0x6e4], 0xf
mov byte [ebp - 0x6f8], 0
cmp byte [ebp - 0x21], 0
je 0x41717b
mov dword [0], 0x2a
lea eax, [ebp - 0x1810]
push eax
call fcn.004148e0
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0x300
mov ecx, dword [0x440e80]
mov dword [ebp - 0xf3], ecx
mov edi, dword [0x4527a8]
cmp byte [0x440e83], 0
je 0x41772a
xor edx, edx
mov dword [ebp - 0x28], edx
cmp edi, 2
jl 0x417700
movaps xmm3, xmmword [0x440580]
movaps xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x440a00]
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x440a00]
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm3
mov eax, 5
movd xmm0, eax
psrad xmm2, xmm0
movaps xmm1, xmm2
mov eax, 0x1f
movd xmm0, eax
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x4409f0]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.3333333333333333M]
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xf3], xmm1
jmp 0x41772a
sub edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2b8]
jmp 0x416a7a
mov eax, 3
mov dword [ebp - 0x34], eax
sub edi, dword [ebp - 0x40]
cmp edi, 0xffffffff
je 0x416cc8
lea eax, [ebp - 0x668]
push eax
call fcn.00414770
add esp, 4
mov esi, eax
mov dword [ebp - 0x30], eax
movq xmm0, qword [str.rn_dr]
movq qword [ebp - 0x26c], xmm0
mov cl, byte [0x440e6c]
mov byte [ebp - 0x264], cl
xor edx, edx
mov dword [ebp - 0x40], edx
nop dword [eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x40]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x26c], cl
inc edx
mov dword [ebp - 0x40], edx
cmp edx, 9
jl 0x4172b0
mov dword [ebp - 0x390], 0
mov dword [ebp - 0x380], 0
mov dword [ebp - 0x37c], 0xf
lea ecx, [ebp - 0x26c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417301
sub ecx, edx
push ecx
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x390]
call fcn.00401820
lea ecx, [ebp - 0x390]
cmp dword [ebp - 0x37c], 0x10
cmovae ecx, dword [ebp - 0x390]
mov dword [ebp - 0x28], ecx
mov edx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x417342
mov esi, dword [esi]
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x380]
cmp eax, edx
ja 0x4173ec
test eax, eax
je 0x41740a
sub edx, eax
lea eax, [edx + 1]
add eax, esi
mov dword [ebp - 0x40], eax
movsx ecx, byte [ecx]
mov dword [ebp - 0x34], ecx
sub eax, esi
push eax
push ecx
push esi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
je 0x4173ec
nop
mov ecx, edi
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x380]
sub esi, 4
jb 0x4173a1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4173a6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x417390
cmp esi, 0xfffffffc
je 0x4173f6
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4173d3
cmp esi, 0xfffffffd
je 0x4173f6
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4173d3
cmp esi, 0xfffffffe
je 0x4173f6
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4173d3
cmp esi, 0xffffffff
je 0x4173f6
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4173f6
inc edi
mov eax, dword [ebp - 0x40]
sub eax, edi
push eax
push dword [ebp - 0x34]
push edi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
jne 0x417380
mov eax, 0xf
jmp 0x416cc5
mov eax, 0xf
mov dword [ebp - 0x34], eax
sub edi, dword [ebp - 0x30]
cmp edi, 0xffffffff
je 0x416cc8
mov byte [ebp - 0x21], 1
mov eax, 0xf
jmp 0x416cd0
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x28]
cmp ecx, 0xffffffff
jne 0x41742b
mov eax, dword [ebp - 0x34]
jmp 0x416ff4
lea eax, [ebp - 0x698]
push eax
call fcn.00414770
add esp, 4
mov edi, eax
mov dword [ebp - 0x40], eax
or esi, 0xc0
mov dword [ebp - 0x34], esi
mov ecx, dword [str.fgpd]
mov esi, dword [0x440e7c]
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], esi
cmp byte [0x440e7f], 0
je 0x4175ba
xor edx, edx
mov dword [ebp - 0x28], edx
cmp dword [0x4527a8], 2
jl 0x417590
movaps xmm4, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x440580]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
mov eax, dword [str.3333333333333333M]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x148], xmm1
movaps xmm2, xmmword [0x4406f0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, esi
pxor xmm1, xmm0
movd dword [ebp - 0x144], xmm1
jmp 0x4175ba
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x148], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 8
jl 0x417590
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2d4], 0xf
lea ecx, [ebp - 0x148]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4175e1
sub ecx, edx
push ecx
lea eax, [ebp - 0x148]
push eax
lea ecx, [ebp - 0x2e8]
call fcn.00401820
lea eax, [ebp - 0x2e8]
cmp dword [ebp - 0x2d4], 0x10
cmovae eax, dword [ebp - 0x2e8]
mov dword [ebp - 0x3c], eax
mov ecx, dword [edi + 0x10]
cmp dword [edi + 0x14], 0x10
jb 0x417622
mov edi, dword [edi]
mov dword [ebp - 0x40], edi
mov esi, dword [ebp - 0x2d8]
cmp esi, ecx
ja 0x416fee
test esi, esi
je 0x4176ea
sub ecx, esi
inc ecx
add ecx, edi
mov dword [ebp - 0x98], ecx
movsx edx, byte [eax]
mov dword [ebp - 0x28], edx
sub ecx, edi
push ecx
push edx
push edi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
je 0x416fee
mov ecx, edi
mov edx, dword [ebp - 0x3c]
sub esi, 4
jb 0x417681
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x417686
add ecx, 4
add edx, 4
sub esi, 4
jae 0x417670
cmp esi, 0xfffffffc
je 0x4176da
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4176b3
cmp esi, 0xfffffffd
je 0x4176da
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4176b3
cmp esi, 0xfffffffe
je 0x4176da
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4176b3
cmp esi, 0xffffffff
je 0x4176da
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4176da
inc edi
mov eax, dword [ebp - 0x98]
sub eax, edi
push eax
push dword [ebp - 0x28]
push edi
call fcn.00422360
add esp, 0xc
mov edi, eax
test edi, edi
mov esi, dword [ebp - 0x2d8]
jne 0x417660
jmp 0x416fee
sub edi, dword [ebp - 0x40]
cmp edi, 0xffffffff
jne 0x4176ea
mov eax, dword [ebp - 0x34]
jmp 0x416ff4
mov byte [ebp - 0x21], 1
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
jmp 0x416ff8
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xf3], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 4
jl 0x417700
mov dword [ebp - 0x49c], 0
mov dword [ebp - 0x48c], 0
mov dword [ebp - 0x488], 0xf
lea ecx, [ebp - 0xf3]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417751
sub ecx, edx
push ecx
lea eax, [ebp - 0xf3]
push eax
lea ecx, [ebp - 0x49c]
call fcn.00401820
lea ecx, [ebp - 0x49c]
cmp dword [ebp - 0x488], 0x10
cmovae ecx, dword [ebp - 0x49c]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41778f
mov eax, dword [eax]
push dword [ebp - 0x48c]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41788b
lea eax, [ebp - 0x10f0]
push eax
call fcn.00414770
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0xc00
mov ecx, dword [0x440e84]
mov dword [ebp - 0xf8], ecx
mov cl, byte [0x440e88]
mov byte [ebp - 0xf4], cl
xor edx, edx
mov dword [ebp - 0x28], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xf8], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 5
jl 0x4177e0
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x34c], 0xf
lea ecx, [ebp - 0xf8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417831
sub ecx, edx
push ecx
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0x360]
call fcn.00401820
lea ecx, [ebp - 0x360]
cmp dword [ebp - 0x34c], 0x10
cmovae ecx, dword [ebp - 0x360]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41786f
mov eax, dword [eax]
push dword [ebp - 0x350]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x21], 1
jne 0x41788f
mov byte [ebp - 0x21], 0
test esi, 0x800
je 0x4178f4
and esi, 0xfffff7ff
mov eax, dword [ebp - 0x34c]
cmp eax, 0x10
jb 0x4178d9
lea edx, [eax + 1]
mov ecx, dword [ebp - 0x360]
mov eax, ecx
cmp edx, 0x1000
jb 0x4178cf
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x34c], 0xf
mov byte [ebp - 0x360], 0
test esi, 0x400
je 0x41790d
and esi, 0xfffffbff
lea ecx, [ebp - 0x10f0]
call fcn.00401290
mov edx, dword [ebp - 0x488]
cmp edx, 0x10
jb 0x417947
inc edx
mov ecx, dword [ebp - 0x49c]
mov eax, ecx
cmp edx, 0x1000
jb 0x41793d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x48c], 0
mov dword [ebp - 0x488], 0xf
mov byte [ebp - 0x49c], 0
and esi, 0xfffffcff
lea ecx, [ebp - 0x1810]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x417983
mov dword [0], 0x2a
lea eax, [ebp - 0x1840]
push eax
call fcn.004148e0
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0x3000
mov ecx, dword [str.rgx6rgxe]
mov dword [ebp - 0x9c], ecx
cmp byte [0x440e8f], 0
je 0x417a7e
xor edx, edx
mov dword [ebp - 0x28], edx
cmp edi, 2
jl 0x417a54
movaps xmm3, xmmword [0x440580]
movaps xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x440a00]
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x440a00]
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm3
mov eax, 5
movd xmm0, eax
psrad xmm2, xmm0
movaps xmm1, xmm2
mov eax, 0x1f
movd xmm0, eax
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x4409f0]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.3333333333333333M]
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x9c], xmm1
jmp 0x417a7e
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x9c], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 4
jl 0x417a54
mov dword [ebp - 0x484], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x470], 0xf
lea ecx, [ebp - 0x9c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417aa5
sub ecx, edx
push ecx
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp - 0x484]
call fcn.00401820
lea ecx, [ebp - 0x484]
cmp dword [ebp - 0x470], 0x10
cmovae ecx, dword [ebp - 0x484]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x417ae3
mov eax, dword [eax]
push dword [ebp - 0x474]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x417beb
lea eax, [ebp - 0x1828]
push eax
call fcn.00414770
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0xc000
mov ecx, dword [0x440e90]
mov dword [ebp - 0x195], ecx
mov cx, word [0x440e94]
mov word [ebp - 0x191], cx
test ch, ch
je 0x417b6a
xor edx, edx
mov dword [ebp - 0x28], edx
nop word [eax + eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x195], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 6
jl 0x417b40
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x338], 0
mov dword [ebp - 0x334], 0xf
lea ecx, [ebp - 0x195]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417b91
sub ecx, edx
push ecx
lea eax, [ebp - 0x195]
push eax
lea ecx, [ebp - 0x348]
call fcn.00401820
lea ecx, [ebp - 0x348]
cmp dword [ebp - 0x334], 0x10
cmovae ecx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x417bcf
mov eax, dword [eax]
push dword [ebp - 0x338]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x21], 1
jne 0x417bef
mov byte [ebp - 0x21], 0
test esi, 0x8000
je 0x417c54
and esi, 0xffff7fff
mov eax, dword [ebp - 0x334]
cmp eax, 0x10
jb 0x417c39
lea edx, [eax + 1]
mov ecx, dword [ebp - 0x348]
mov eax, ecx
cmp edx, 0x1000
jb 0x417c2f
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x338], 0
mov dword [ebp - 0x334], 0xf
mov byte [ebp - 0x348], 0
test esi, 0x4000
je 0x417c6d
and esi, 0xffffbfff
lea ecx, [ebp - 0x1828]
call fcn.00401290
mov edx, dword [ebp - 0x470]
cmp edx, 0x10
jb 0x417ca7
inc edx
mov ecx, dword [ebp - 0x484]
mov eax, ecx
cmp edx, 0x1000
jb 0x417c9d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x470], 0xf
mov byte [ebp - 0x484], 0
and esi, 0xffffcfff
lea ecx, [ebp - 0x1840]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x417ce3
mov dword [0], 0x2a
lea eax, [ebp - 0x9b8]
push eax
call fcn.004148e0
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0x30000
mov ecx, dword [str.RVWO7]
mov dword [ebp - 0xfd], ecx
mov cl, byte [0x440e9c]
mov byte [ebp - 0xf9], cl
xor edx, edx
mov dword [ebp - 0x28], edx
nop dword [eax + eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xfd], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 5
jl 0x417d20
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 0xf
lea ecx, [ebp - 0xfd]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417d71
sub ecx, edx
push ecx
lea eax, [ebp - 0xfd]
push eax
lea ecx, [ebp - 0x46c]
call fcn.00401820
lea ecx, [ebp - 0x46c]
cmp dword [ebp - 0x458], 0x10
cmovae ecx, dword [ebp - 0x46c]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x417daf
mov eax, dword [eax]
push dword [ebp - 0x45c]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x417fd0
lea eax, [ebp - 0x1858]
push eax
call fcn.00414770
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0xc0000
mov ecx, dword [str.rvwo]
mov dword [ebp - 0x150], ecx
mov eax, dword [0x440ea4]
mov dword [ebp - 0x14c], eax
cmp byte [0x440ea7], 0
je 0x417f4f
xor edx, edx
mov dword [ebp - 0x28], edx
cmp edi, 2
jl 0x417f25
movaps xmm4, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x440580]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
mov eax, dword [str.3333333333333333M]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0x150], xmm1
movaps xmm2, xmmword [0x4406f0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x440ea4]
pxor xmm1, xmm0
movd dword [ebp - 0x14c], xmm1
jmp 0x417f4f
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x150], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 8
jl 0x417f25
mov dword [ebp - 0x330], 0
mov dword [ebp - 0x320], 0
mov dword [ebp - 0x31c], 0xf
lea ecx, [ebp - 0x150]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417f76
sub ecx, edx
push ecx
lea eax, [ebp - 0x150]
push eax
lea ecx, [ebp - 0x330]
call fcn.00401820
lea ecx, [ebp - 0x330]
cmp dword [ebp - 0x31c], 0x10
cmovae ecx, dword [ebp - 0x330]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x417fb4
mov eax, dword [eax]
push dword [ebp - 0x320]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x21], 1
jne 0x417fd4
mov byte [ebp - 0x21], 0
test esi, 0x80000
je 0x418039
and esi, 0xfff7ffff
mov eax, dword [ebp - 0x31c]
cmp eax, 0x10
jb 0x41801e
lea edx, [eax + 1]
mov ecx, dword [ebp - 0x330]
mov eax, ecx
cmp edx, 0x1000
jb 0x418014
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x320], 0
mov dword [ebp - 0x31c], 0xf
mov byte [ebp - 0x330], 0
test esi, 0x40000
je 0x418052
and esi, 0xfffbffff
lea ecx, [ebp - 0x1858]
call fcn.00401290
mov edx, dword [ebp - 0x458]
cmp edx, 0x10
jb 0x41808c
inc edx
mov ecx, dword [ebp - 0x46c]
mov eax, ecx
cmp edx, 0x1000
jb 0x418082
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 0xf
mov byte [ebp - 0x46c], 0
and esi, 0xfffcffff
lea ecx, [ebp - 0x9b8]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x4180c8
mov dword [0], 0x2a
lea eax, [ebp - 0x9e8]
push eax
call fcn.004148e0
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0x300000
mov ecx, dword [0x440ea8]
mov dword [ebp - 0x19b], ecx
mov cx, word [0x440eac]
mov word [ebp - 0x197], cx
test ch, ch
je 0x41812d
xor edx, edx
mov dword [ebp - 0x28], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x19b], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 6
jl 0x418103
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 0xf
lea ecx, [ebp - 0x19b]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418154
sub ecx, edx
push ecx
lea eax, [ebp - 0x19b]
push eax
lea ecx, [ebp - 0x454]
call fcn.00401820
lea ecx, [ebp - 0x454]
cmp dword [ebp - 0x440], 0x10
cmovae ecx, dword [ebp - 0x454]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x418192
mov eax, dword [eax]
push dword [ebp - 0x444]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41829b
lea eax, [ebp - 0x9d0]
push eax
call fcn.00414770
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0xc00000
movq xmm0, qword [0x440eb0]
movq qword [ebp - 0x275], xmm0
mov cl, byte [0x440eb8]
mov byte [ebp - 0x26d], cl
xor edx, edx
mov dword [ebp - 0x28], edx
nop word [eax + eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x275], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 9
jl 0x4181f0
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x308], 0
mov dword [ebp - 0x304], 0xf
lea ecx, [ebp - 0x275]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418241
sub ecx, edx
push ecx
lea eax, [ebp - 0x275]
push eax
lea ecx, [ebp - 0x318]
call fcn.00401820
lea ecx, [ebp - 0x318]
cmp dword [ebp - 0x304], 0x10
cmovae ecx, dword [ebp - 0x318]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41827f
mov eax, dword [eax]
push dword [ebp - 0x308]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x21], 1
jne 0x41829f
mov byte [ebp - 0x21], 0
test esi, 0x800000
je 0x418304
and esi, 0xff7fffff
mov eax, dword [ebp - 0x304]
cmp eax, 0x10
jb 0x4182e9
lea edx, [eax + 1]
mov ecx, dword [ebp - 0x318]
mov eax, ecx
cmp edx, 0x1000
jb 0x4182df
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x308], 0
mov dword [ebp - 0x304], 0xf
mov byte [ebp - 0x318], 0
test esi, 0x400000
je 0x41831d
and esi, 0xffbfffff
lea ecx, [ebp - 0x9d0]
call fcn.00401290
mov edx, dword [ebp - 0x440]
cmp edx, 0x10
jb 0x418357
inc edx
mov ecx, dword [ebp - 0x454]
mov eax, ecx
cmp edx, 0x1000
jb 0x41834d
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 0xf
mov byte [ebp - 0x454], 0
and esi, 0xffcfffff
lea ecx, [ebp - 0x9e8]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x418393
mov dword [0], 0x2a
lea eax, [ebp - 0xa30]
push eax
call fcn.004148e0
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0x3000000
mov ecx, dword [str._GEC8]
mov dword [ebp - 0x1a1], ecx
mov cx, word [0x440ec0]
mov word [ebp - 0x19d], cx
test ch, ch
je 0x4183fa
xor edx, edx
mov dword [ebp - 0x28], edx
nop
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x1a1], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 6
jl 0x4183d0
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0xf
lea ecx, [ebp - 0x1a1]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418421
sub ecx, edx
push ecx
lea eax, [ebp - 0x1a1]
push eax
lea ecx, [ebp - 0x43c]
call fcn.00401820
lea ecx, [ebp - 0x43c]
cmp dword [ebp - 0x428], 0x10
cmovae ecx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41845f
mov eax, dword [eax]
push dword [ebp - 0x42c]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x41852b
lea eax, [ebp - 0xa18]
push eax
call fcn.00414770
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0xc000000
movq xmm0, qword [str.gec]
movq qword [ebp - 0x89], xmm0
mov cl, byte [0x440ecc]
mov byte [ebp - 0x81], cl
xor edx, edx
mov dword [ebp - 0x28], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x89], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 9
jl 0x4184b4
lea eax, [ebp - 0x89]
push eax
lea ecx, [ebp - 0xa00]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x98], ecx
cmp dword [eax + 0x14], 0x10
jb 0x418501
mov eax, dword [eax]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x41850f
mov ecx, dword [ecx]
push dword [ebp - 0x98]
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x21], 1
jne 0x41852f
mov byte [ebp - 0x21], 0
test esi, 0x8000000
je 0x418548
and esi, 0xf7ffffff
lea ecx, [ebp - 0xa00]
call fcn.00401290
test esi, 0x4000000
je 0x418561
and esi, 0xfbffffff
lea ecx, [ebp - 0xa18]
call fcn.00401290
mov edx, dword [ebp - 0x428]
cmp edx, 0x10
jb 0x41859b
inc edx
mov ecx, dword [ebp - 0x43c]
mov eax, ecx
cmp edx, 0x1000
jb 0x418591
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0xf
mov byte [ebp - 0x43c], 0
and esi, 0xfcffffff
lea ecx, [ebp - 0xa30]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x4185d7
mov dword [0], 0x2a
lea eax, [ebp - 0xa78]
push eax
call fcn.004148e0
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0x30000000
mov ecx, dword [str.duyrj9]
mov dword [ebp - 0x13b], ecx
mov cx, word [0x440ed4]
mov word [ebp - 0x137], cx
mov cl, byte [0x440ed6]
mov byte [ebp - 0x135], cl
xor edx, edx
mov dword [ebp - 0x28], edx
nop word [eax + eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x13b], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 7
jl 0x418620
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x414], 0
mov dword [ebp - 0x410], 0xf
lea ecx, [ebp - 0x13b]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418671
sub ecx, edx
push ecx
lea eax, [ebp - 0x13b]
push eax
lea ecx, [ebp - 0x424]
call fcn.00401820
lea ecx, [ebp - 0x424]
cmp dword [ebp - 0x410], 0x10
cmovae ecx, dword [ebp - 0x424]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x4186af
mov eax, dword [eax]
push dword [ebp - 0x414]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x418787
lea eax, [ebp - 0xa60]
push eax
call fcn.00414770
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0xc0000000
movq xmm0, qword [str.duyrj]
movq qword [ebp - 0x8a], xmm0
mov cx, word [0x440ee0]
mov word [ebp - 0x82], cx
test ch, ch
je 0x41873a
xor edx, edx
mov dword [ebp - 0x28], edx
nop word [eax + eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x8a], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 0xa
jl 0x418710
lea eax, [ebp - 0x8a]
push eax
lea ecx, [ebp - 0xa48]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x98], ecx
cmp dword [eax + 0x14], 0x10
jb 0x41875d
mov eax, dword [eax]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x41876b
mov ecx, dword [ecx]
push dword [ebp - 0x98]
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x21], 1
jne 0x41878b
mov byte [ebp - 0x21], 0
test esi, esi
jns 0x4187a0
and esi, 0x7fffffff
lea ecx, [ebp - 0xa48]
call fcn.00401290
test esi, 0x40000000
je 0x4187b3
lea ecx, [ebp - 0xa60]
call fcn.00401290
mov edx, dword [ebp - 0x410]
cmp edx, 0x10
jb 0x4187ed
inc edx
mov ecx, dword [ebp - 0x424]
mov eax, ecx
cmp edx, 0x1000
jb 0x4187e3
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x414], 0
mov dword [ebp - 0x410], 0xf
mov byte [ebp - 0x424], 0
lea ecx, [ebp - 0xa78]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x418823
mov dword [0], 0x2a
lea eax, [ebp - 0xac0]
push eax
call fcn.004148e0
add esp, 4
mov esi, eax
mov dword [ebp - 0x40], eax
mov ecx, dword [0x440ee4]
mov dword [ebp - 0x102], ecx
mov cl, byte [0x440ee8]
mov byte [ebp - 0xfe], cl
xor edx, edx
mov dword [ebp - 0x28], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x102], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 5
jl 0x418854
mov dword [ebp - 0x40c], 0
mov dword [ebp - 0x3fc], 0
mov dword [ebp - 0x3f8], 0xf
lea ecx, [ebp - 0x102]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4188a5
sub ecx, edx
push ecx
lea eax, [ebp - 0x102]
push eax
lea ecx, [ebp - 0x40c]
call fcn.00401820
lea eax, [ebp - 0x40c]
cmp dword [ebp - 0x3f8], 0x10
cmovae eax, dword [ebp - 0x40c]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x4188e3
mov esi, dword [esi]
mov dword [ebp - 0x40], esi
mov esi, 3
mov dword [ebp - 0x34], esi
push dword [ebp - 0x3fc]
push eax
push 0
push ecx
push dword [ebp - 0x40]
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x418ada
lea eax, [ebp - 0xaa8]
push eax
call fcn.00414770
add esp, 4
mov esi, eax
mov dword [ebp - 0x40], eax
mov ecx, dword [0x440eec]
mov dword [ebp - 0xd0], ecx
mov eax, dword [0x440ef0]
mov dword [ebp - 0xcc], eax
cmp byte [0x440ef3], 0
je 0x418a8a
xor edx, edx
mov dword [ebp - 0x28], edx
cmp edi, 2
jl 0x418a60
movaps xmm4, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x440580]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
mov eax, dword [str.3333333333333333M]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xd0], xmm1
movaps xmm2, xmmword [0x4406f0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x440ef0]
pxor xmm1, xmm0
movd dword [ebp - 0xcc], xmm1
jmp 0x418a8a
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xd0], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 8
jl 0x418a60
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0xa90]
call fcn.00404740
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x418aa7
mov eax, dword [eax]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x418ab5
mov esi, dword [esi]
mov dword [ebp - 0x40], esi
mov esi, 0xf
mov dword [ebp - 0x34], esi
push edx
push eax
push 0
push ecx
push dword [ebp - 0x40]
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x418ada
mov byte [ebp - 0x21], 1
mov eax, esi
jmp 0x418ae5
mov byte [ebp - 0x21], 0
mov eax, dword [ebp - 0x34]
test al, 8
je 0x418af9
and eax, 0xfffffff7
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0xa90]
call fcn.00401290
mov eax, dword [ebp - 0x34]
test al, 4
je 0x418b0e
and eax, 0xfffffffb
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0xaa8]
call fcn.00401290
mov edx, dword [ebp - 0x3f8]
cmp edx, 0x10
jb 0x418b48
inc edx
mov ecx, dword [ebp - 0x40c]
mov eax, ecx
cmp edx, 0x1000
jb 0x418b3e
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x3fc], 0
mov dword [ebp - 0x3f8], 0xf
mov byte [ebp - 0x40c], 0
mov esi, dword [ebp - 0x34]
and esi, 0xfffffffc
lea ecx, [ebp - 0xac0]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x418b84
mov dword [0], 0x2a
lea eax, [ebp - 0xb08]
push eax
call fcn.004148e0
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0x30
mov dword [ebp - 0x34], esi
movq xmm0, qword [0x440ef4]
movq qword [ebp - 0x1ee], xmm0
mov ecx, dword [0x440efc]
mov dword [ebp - 0x1e6], ecx
mov cx, word [0x440f00]
mov word [ebp - 0x1e2], cx
test ch, ch
je 0x418d2a
xor edx, edx
mov dword [ebp - 0x30], edx
cmp edi, 2
jl 0x418cf6
movaps xmm4, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x440580]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
mov eax, dword [str.3333333333333333M]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x440ef4]
pxor xmm1, xmm0
movd dword [ebp - 0x1ee], xmm1
movaps xmm2, xmmword [0x4406f0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x1ea]
pxor xmm1, xmm0
movd dword [ebp - 0x1ea], xmm1
mov edx, 8
mov dword [ebp - 0x30], edx
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x30]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x1ee], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0xe
jl 0x418cf6
mov dword [ebp - 0x3dc], 0
mov dword [ebp - 0x3cc], 0
mov dword [ebp - 0x3c8], 0xf
lea ecx, [ebp - 0x1ee]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418d51
sub ecx, edx
push ecx
lea eax, [ebp - 0x1ee]
push eax
lea ecx, [ebp - 0x3dc]
call fcn.00401820
lea ecx, [ebp - 0x3dc]
cmp dword [ebp - 0x3c8], 0x10
cmovae ecx, dword [ebp - 0x3dc]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x418d8f
mov eax, dword [eax]
push dword [ebp - 0x3cc]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x418e51
lea eax, [ebp - 0xaf0]
push eax
call fcn.00414770
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0xc0
mov dword [ebp - 0x34], esi
mov ecx, dword [str.__XYY8]
mov dword [ebp - 0x66], ecx
mov cx, word [0x440f08]
mov word [ebp - 0x62], cx
test ch, ch
je 0x418e0a
xor edx, edx
mov dword [ebp - 0x28], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x66], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 6
jl 0x418de3
lea eax, [ebp - 0x66]
push eax
lea ecx, [ebp - 0xad8]
call fcn.00404740
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x418e24
mov eax, dword [eax]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x418e32
mov ecx, dword [ecx]
push esi
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x418e51
mov byte [ebp - 0x21], 1
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
jmp 0x418e58
mov byte [ebp - 0x21], 0
mov eax, dword [ebp - 0x34]
test al, al
jns 0x418e72
and eax, 0xffffff7f
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0xad8]
call fcn.00401290
mov eax, dword [ebp - 0x34]
test al, 0x40
je 0x418e87
and eax, 0xffffffbf
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0xaf0]
call fcn.00401290
mov edx, dword [ebp - 0x3c8]
cmp edx, 0x10
jb 0x418ec1
inc edx
mov ecx, dword [ebp - 0x3dc]
mov eax, ecx
cmp edx, 0x1000
jb 0x418eb7
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x3cc], 0
mov dword [ebp - 0x3c8], 0xf
mov byte [ebp - 0x3dc], 0
mov esi, dword [ebp - 0x34]
and esi, 0xffffffcf
lea ecx, [ebp - 0xb08]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x418efd
mov dword [0], 0x2a
lea eax, [ebp - 0xb50]
push eax
call fcn.004148e0
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0x300
mov ecx, dword [str.rZ_W7]
mov dword [ebp - 0x107], ecx
mov cl, byte [0x440f10]
mov byte [ebp - 0x103], cl
xor edx, edx
mov dword [ebp - 0x28], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x107], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 5
jl 0x418f32
mov dword [ebp - 0x3f4], 0
mov dword [ebp - 0x3e4], 0
mov dword [ebp - 0x3e0], 0xf
lea ecx, [ebp - 0x107]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418f83
sub ecx, edx
push ecx
lea eax, [ebp - 0x107]
push eax
lea ecx, [ebp - 0x3f4]
call fcn.00401820
lea ecx, [ebp - 0x3f4]
cmp dword [ebp - 0x3e0], 0x10
cmovae ecx, dword [ebp - 0x3f4]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x418fc1
mov eax, dword [eax]
push dword [ebp - 0x3e4]
push ecx
push 0
push edx
push eax
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
je 0x4191b7
lea eax, [ebp - 0xb38]
push eax
call fcn.00414770
add esp, 4
mov dword [ebp - 0x3c], eax
or esi, 0xc00
mov ecx, dword [str.rzw]
mov dword [ebp - 0xd0], ecx
mov eax, dword [0x440f18]
mov dword [ebp - 0xcc], eax
cmp byte [0x440f1b], 0
je 0x41916a
xor edx, edx
mov dword [ebp - 0x28], edx
cmp edi, 2
jl 0x419140
movaps xmm4, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x440580]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
mov eax, dword [str.3333333333333333M]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
pxor xmm1, xmm0
movd dword [ebp - 0xd0], xmm1
movaps xmm2, xmmword [0x4406f0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x440f18]
pxor xmm1, xmm0
movd dword [ebp - 0xcc], xmm1
jmp 0x41916a
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xd0], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 8
jl 0x419140
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0xb20]
call fcn.00404740
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x98], ecx
cmp dword [eax + 0x14], 0x10
jb 0x41918d
mov eax, dword [eax]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
jb 0x41919b
mov ecx, dword [ecx]
push dword [ebp - 0x98]
push eax
push 0
push edx
push ecx
call fcn.004010d0
add esp, 0x14
cmp eax, 0xffffffff
mov byte [ebp - 0x21], 1
jne 0x4191bb
mov byte [ebp - 0x21], 0
test esi, 0x800
je 0x4191d4
and esi, 0xfffff7ff
lea ecx, [ebp - 0xb20]
call fcn.00401290
test esi, 0x400
je 0x4191e7
lea ecx, [ebp - 0xb38]
call fcn.00401290
mov edx, dword [ebp - 0x3e0]
cmp edx, 0x10
jb 0x419221
inc edx
mov ecx, dword [ebp - 0x3f4]
mov eax, ecx
cmp edx, 0x1000
jb 0x419217
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419950
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x3e4], 0
mov dword [ebp - 0x3e0], 0xf
mov byte [ebp - 0x3f4], 0
lea ecx, [ebp - 0xb50]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x419257
mov dword [0], 0x2a
lea eax, [ebp - 0xb68]
push eax
call fcn.00414770
add esp, 4
mov edx, eax
cmp dword [edx + 0x14], 0x10
jb 0x419270
mov edx, dword [edx]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419275
sub ecx, esi
lea eax, [ecx + edx]
push 1
push 0x10
lea ecx, [ebp - 0x8dc]
push ecx
push 0
push eax
push edx
call fcn.0040b510
add esp, 0x18
mov byte [ebp - 0x21], al
lea ecx, [ebp - 0xb68]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x4192b6
mov dword [0], 0x2a
lea eax, [ebp - 0xb80]
push eax
call fcn.00414770
add esp, 4
mov edx, eax
cmp dword [edx + 0x14], 0x10
jb 0x4192cf
mov edx, dword [edx]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4192d4
sub ecx, esi
lea eax, [ecx + edx]
push 1
push 0x10
lea ecx, [ebp - 0x8c8]
push ecx
push 0
push eax
push edx
call fcn.0040b510
add esp, 0x18
mov byte [ebp - 0x21], al
lea ecx, [ebp - 0xb80]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x419315
mov dword [0], 0x2a
lea eax, [ebp - 0xb98]
push eax
call fcn.00414770
add esp, 4
mov edx, eax
cmp dword [edx + 0x14], 0x10
jb 0x41932e
mov edx, dword [edx]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419333
sub ecx, esi
lea eax, [ecx + edx]
push 1
push 0x10
lea ecx, [ebp - 0x8b4]
push ecx
push 0
push eax
push edx
call fcn.0040b510
add esp, 0x18
mov byte [ebp - 0x21], al
lea ecx, [ebp - 0xb98]
call fcn.00401290
cmp byte [ebp - 0x21], 0
je 0x419374
mov dword [0], 0x2a
movups xmm0, xmmword [0x440f38]
movups xmmword [ebp - 0x3ba], xmm0
mov ax, word [0x440f48]
mov word [ebp - 0x3aa], ax
test ah, ah
je 0x419527
xor edx, edx
mov dword [ebp - 0x30], edx
cmp edi, 2
jl 0x4194f3
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
movaps xmm6, xmmword [0x4409f0]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.3333333333333333M]
movaps xmmword [ebp - 0x80], xmm0
mov ecx, dword [ebp - 0x80]
nop word [eax + eax]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x3ba]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x3ba], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x3b6]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x3b6], xmm1
add edx, 8
cmp edx, 0x10
jl 0x4193e0
mov dword [ebp - 0x30], edx
cmp edx, 0x12
jge 0x419527
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x30]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x3ba], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0x12
jl 0x4194f3
mov dword [ebp - 0x580], 0
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], 0xf
lea ecx, [ebp - 0x3ba]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419550
sub ecx, edx
push ecx
lea eax, [ebp - 0x3ba]
push eax
lea ecx, [ebp - 0x580]
call fcn.00401820
movups xmm0, xmmword [0x440f1c]
movups xmmword [ebp - 0x59c], xmm0
movq xmm0, qword [0x440f2c]
movq qword [ebp - 0x58c], xmm0
mov eax, dword [0x440f34]
mov dword [ebp - 0x584], eax
cmp byte [0x440f37], 0
je 0x419737
xor edx, edx
mov dword [ebp - 0x30], edx
cmp edi, 2
jl 0x419703
mov dword [ebp - 0x568], 0
mov dword [ebp - 0x558], 0
mov dword [ebp - 0x554], 0xf
lea ecx, [ebp - 0x59c]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419760
call fcn.0042596f
push edx
push ecx
call fcn.0042142c
add esp, 8
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], 0xf
mov byte [ebp - 0x580], 0
cmp dword [ebp - 0x3c], 0xffffffff
je 0x41998a
mov dword [0], 0x2a
movups xmm0, xmmword [0x440f70]
movups xmmword [ebp - 0x5a], xmm0
mov ax, word [0x440f80]
mov word [ebp - 0x4a], ax
test ah, ah
je 0x419b31
xor edx, edx
mov dword [ebp - 0x30], edx
cmp edi, 2
jl 0x419b00
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
movaps xmm6, xmmword [0x4409f0]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.3333333333333333M]
movaps xmmword [ebp - 0x80], xmm0
mov ecx, dword [ebp - 0x80]
nop word [eax + eax]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x5a]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x5a], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x56]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x56], xmm1
add edx, 8
cmp edx, 0x10
jl 0x4199f0
mov dword [ebp - 0x30], edx
cmp edx, 0x12
jge 0x419b31
nop word [eax + eax]
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x30]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x5a], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0x12
jl 0x419b00
lea eax, [ebp - 0x5a]
push eax
lea ecx, [ebp - 0xc10]
call fcn.00404740
mov esi, eax
movups xmm0, xmmword [0x440f54]
movups xmmword [ebp - 0xba], xmm0
movq xmm0, qword [0x440f64]
movq qword [ebp - 0xaa], xmm0
mov ecx, dword [0x440f6c]
mov dword [ebp - 0xa2], ecx
cmp byte [0x440f6f], 0
je 0x419d07
xor edx, edx
mov dword [ebp - 0x30], edx
cmp edi, 2
jl 0x419cd3
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
movaps xmm6, xmmword [0x4409f0]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.3333333333333333M]
movaps xmmword [ebp - 0x80], xmm0
mov ecx, dword [ebp - 0x80]
nop dword [eax]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xba]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xba], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xb6]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xb6], xmm1
add edx, 8
cmp edx, 0x18
jl 0x419bc0
mov dword [ebp - 0x30], edx
cmp edx, 0x1c
jge 0x419d07
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x30]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xba], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0x1c
jl 0x419cd3
lea eax, [ebp - 0xba]
push eax
lea ecx, [ebp - 0xbf8]
call fcn.00404740
mov dword [ebp - 0x544], reloc.OLEAUT32.dll_SysReAllocString
push esi
push eax
lea eax, [ebp - 0x544]
push eax
lea eax, [ebp - 0xbe0]
push eax
call fcn.00409f50
add esp, 0x10
mov esi, eax
movq xmm0, qword [str.zzas]
movq qword [ebp - 0xef], xmm0
mov ecx, dword [0x440f8c]
mov dword [ebp - 0xe7], ecx
mov cl, byte [0x440f90]
mov byte [ebp - 0xe3], cl
xor edx, edx
mov dword [ebp - 0x30], edx
cmp edi, 2
jl 0x419e90
movaps xmm4, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
mov eax, 0x1f
movd xmm6, eax
movaps xmm2, xmmword [0x440580]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
mov eax, dword [str.3333333333333333M]
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.zzas]
pxor xmm1, xmm0
movd dword [ebp - 0xef], xmm1
movaps xmm2, xmmword [0x4406f0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4409f0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0xeb]
pxor xmm1, xmm0
movd dword [ebp - 0xeb], xmm1
mov edx, 8
mov dword [ebp - 0x30], edx
nop dword [eax]
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x30]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xef], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0xd
jl 0x419e90
lea eax, [ebp - 0xef]
push eax
lea ecx, [ebp - 0xbc8]
call fcn.00404740
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x419ee1
mov eax, dword [eax]
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 0x10
jb 0x419eec
mov esi, dword [esi]
push edx
push eax
push 0
push ecx
push esi
call fcn.004010d0
add esp, 0x14
mov esi, eax
lea ecx, [ebp - 0xbc8]
call fcn.00401290
lea ecx, [ebp - 0xbe0]
call fcn.00401290
lea ecx, [ebp - 0xbf8]
call fcn.00401290
lea ecx, [ebp - 0xc10]
call fcn.00401290
cmp esi, 0xffffffff
je 0x419f37
mov dword [0], 0x2a
movups xmm0, xmmword [0x440fb0]
movups xmmword [ebp - 0x5a], xmm0
mov ax, word [0x440fc0]
mov word [ebp - 0x4a], ax
test ah, ah
je 0x41a0e1
xor edx, edx
mov dword [ebp - 0x30], edx
cmp edi, 2
jl 0x41a0b0
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
movaps xmm6, xmmword [0x4409f0]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.3333333333333333M]
movaps xmmword [ebp - 0x80], xmm0
mov ecx, dword [ebp - 0x80]
nop word [eax + eax]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x5a]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x5a], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x56]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x56], xmm1
add edx, 8
cmp edx, 0x10
jl 0x419fa0
mov dword [ebp - 0x30], edx
cmp edx, 0x12
jge 0x41a0e1
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x30]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x5a], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0x12
jl 0x41a0b0
lea eax, [ebp - 0x5a]
push eax
lea ecx, [ebp - 0xc70]
call fcn.00404740
mov esi, eax
movups xmm0, xmmword [0x440f94]
movups xmmword [ebp - 0xba], xmm0
movq xmm0, qword [0x440fa4]
movq qword [ebp - 0xaa], xmm0
mov ecx, dword [0x440fac]
mov dword [ebp - 0xa2], ecx
cmp byte [0x440faf], 0
je 0x41a2b7
xor edx, edx
mov dword [ebp - 0x30], edx
cmp edi, 2
jl 0x41a283
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440a00]
mov eax, 5
movd xmm5, eax
movaps xmm6, xmmword [0x4409f0]
mov eax, 0x1f
movd xmm7, eax
movaps xmm0, xmmword [str.3333333333333333M]
movaps xmmword [ebp - 0x80], xmm0
mov ecx, dword [ebp - 0x80]
nop dword [eax]
movd xmm0, edx
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xba]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xba], xmm1
lea eax, [edx + 4]
movd xmm0, eax
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xb6]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xb6], xmm1
add edx, 8
cmp edx, 0x18
jl 0x41a170
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0x30]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x30]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xba], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0x1c
jl 0x41a283
lea eax, [ebp - 0xba]
push eax
lea ecx, [ebp - 0xc58]
call fcn.00404740
mov dword [ebp - 0x510], reloc.OLEAUT32.dll_SysReAllocString
push esi
push eax
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0xc40]
push eax
call fcn.00409f50
add esp, 0x10
mov esi, eax
mov ecx, dword [0x440fc4]
mov dword [ebp - 0x48], ecx
mov cl, byte [0x440fc8]
mov byte [ebp - 0x44], cl
xor edx, edx
mov dword [ebp - 0x28], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
mov edx, dword [ebp - 0x28]
mov cl, dl
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x48], cl
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 5
jl 0x41a304
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0xc28]
call fcn.00404740
mov edx, dword [eax + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x41a345