Function at 0x40df50
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42461c
mov eax, dword fs:[0]
push eax
sub esp, 0x7c0
mov eax, dword [0x42f008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, 0x42fd48
mov dword [ebp - 0x428], 0
cmp esi, 0x42fc70
je 0x40dff9
cmp dword [0x42fc84], 8
mov eax, 0x42fc70
mov ecx, dword [0x42fc80]
cmovae eax, dword [0x42fc70]
mov edx, dword [0x42fd5c]
cmp ecx, edx
ja 0x40dfe3
mov edi, esi
mov dword [0x42fd58], ecx
lea esi, [ecx + ecx]
cmp edx, 8
push esi
cmovae edi, dword [0x42fd48]
push eax
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
xor eax, eax
mov word [esi + edi], ax
jmp 0x40dff9
push eax
mov byte [ebp - 0x428], 0
push dword [ebp - 0x428]
push ecx
mov ecx, esi
call fcn.004166b0
lea eax, [ebp - 0x21c]
push eax
push 0
push 0
push 0x8023
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x494]
call fcn.00410c80
push eax
mov ecx, 0x42f064
call fcn.00410bf0
mov ecx, dword [ebp - 0x480]
cmp ecx, 8
jb 0x40e070
mov edx, dword [ebp - 0x494]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e066
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40e066
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004228bd
add esp, 8
call fcn.00409170
call fcn.00408620
mov ecx, 2
call fcn.004087e0
mov ecx, dword [0x42f074]
mov esi, 0x7ffffffe
mov eax, esi
sub eax, ecx
cmp eax, 1
jae 0x40e09d
call fcn.004021f0
cmp dword [0x42f078], 8
mov eax, 0x42f064
push 1
cmovae eax, dword [0x42f064]
push 0x428228
push ecx
push eax
push ecx
push dword [ebp - 0x428]
lea ecx, [ebp - 0x47c]
call fcn.00417ab0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x47c]
cmp dword [0x42fcb4], 8
mov eax, 0x42fca0
push dword [0x42fcb0]
cmovae eax, dword [0x42fca0]
push eax
call fcn.00413530
mov dword [ebp - 0x7a0], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x7b0], xmm0
mov dword [ebp - 0x79c], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x7b0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x7a0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push ecx
lea edx, [ebp - 0x7b0]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x494]
call fcn.004153a0
add esp, 4
mov byte [ebp - 4], 2
mov ecx, 0x42fc58
cmp dword [0x42fc6c], 8
push dword [0x42fc68]
cmovae ecx, dword [0x42fc58]
push ecx
mov ecx, eax
call fcn.00413530
mov dword [ebp - 0x43c], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x44c], xmm0
mov dword [ebp - 0x438], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x44c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x43c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push 0x50
push ecx
lea eax, [ebp - 0x5b4]
mov byte [ebp - 4], 3
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x5b4]
call fcn.00410340
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x44c]
cmp dword [ebp - 0x438], 8
mov eax, dword [ebp - 0x43c]
cmovae ecx, dword [ebp - 0x44c]
lea eax, [ecx + eax*2]
push eax
push ecx
lea eax, [ebp - 0x7c8]
push eax
lea ecx, [ebp - 0x5b4]
call fcn.00412250
lea ecx, [ebp - 0x5b4]
mov byte [ebp - 4], 3
call fcn.00410280
cmp dword [ebp - 0x7b4], 0x10
lea ecx, [ebp - 0x594]
lea eax, [ebp - 0x7c8]
cmovae eax, dword [ebp - 0x7c8]
push ecx
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__stat64i32]
mov ecx, dword [ebp - 0x7b4]
add esp, 8
test eax, eax
setne byte [ebp - 0x795]
cmp ecx, 0x10
jb 0x40e292
mov edx, dword [ebp - 0x7c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40e288
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e404
push ecx
push edx
call fcn.004228bd
add esp, 8
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x438]
mov dword [ebp - 0x7b8], 0
mov dword [ebp - 0x7b4], 0xf
mov byte [ebp - 0x7c8], 0
cmp ecx, 8
jb 0x40e2f1
mov edx, dword [ebp - 0x44c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e2e7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e404
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x480]
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x438], 7
mov word [ebp - 0x44c], ax
cmp ecx, 8
jb 0x40e352
mov edx, dword [ebp - 0x494]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e348
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e404
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov dword [ebp - 0x484], 0
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x79c]
mov dword [ebp - 0x480], 7
mov word [ebp - 0x494], ax
cmp ecx, 8
jb 0x40e3ae
mov edx, dword [ebp - 0x7b0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e3a4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e404
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x468]
mov dword [ebp - 0x7a0], 0
mov dword [ebp - 0x79c], 7
mov word [ebp - 0x7b0], ax
cmp ecx, 8
jb 0x40e414
mov edx, dword [ebp - 0x47c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e40a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40e40a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004228bd
add esp, 8
cmp byte [ebp - 0x795], 0
je 0x40f3b2
push 0x208
lea eax, [ebp - 0x424]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x57c]
call fcn.00410c80
mov ecx, 1
mov dword [ebp - 4], 5
call fcn.004087e0
call fcn.00408620
mov ecx, dword [0x42f074]
mov eax, esi
sub eax, ecx
cmp eax, 1
jae 0x40e471
call fcn.004021f0
cmp dword [0x42f078], 8
mov eax, 0x42f064
push 1
cmovae eax, dword [0x42f064]
push 0x428228
push ecx
push eax
push ecx
push dword [ebp - 0x428]
lea ecx, [ebp - 0x7c8]
call fcn.00417ab0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x7c8]
cmp dword [0x42fcb4], 8
mov eax, 0x42fca0
push dword [0x42fcb0]
cmovae eax, dword [0x42fca0]
push eax
call fcn.00413530
mov dword [ebp - 0x7a0], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x7b0], xmm0
mov dword [ebp - 0x79c], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x7b0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x7a0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push ecx
lea edx, [ebp - 0x7b0]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x47c]
call fcn.004153a0
add esp, 4
mov byte [ebp - 4], 8
mov ecx, 0x42fc58
cmp dword [0x42fc6c], 8
push dword [0x42fc68]
cmovae ecx, dword [0x42fc58]
push ecx
mov ecx, eax
call fcn.00413530
mov dword [ebp - 0x454], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x464], xmm0
mov dword [ebp - 0x450], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x464], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x454], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x468]
cmp ecx, 8
jb 0x40e5da
mov edx, dword [ebp - 0x47c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e5d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e68a
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x468], 7
mov word [ebp - 0x47c], ax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x79c]
cmp ecx, 8
jb 0x40e637
mov edx, dword [ebp - 0x7b0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e62d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e68a
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov dword [ebp - 0x7a0], 0
mov dword [ebp - 0x79c], 7
mov word [ebp - 0x7b0], ax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x7b4]
cmp ecx, 8
jb 0x40e69a
mov edx, dword [ebp - 0x7c8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e690
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40e690
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov dword [ebp - 0x7b8], 0
push 0xb8
push eax
mov word [ebp - 0x7c8], ax
lea eax, [ebp - 0x670]
push eax
mov dword [ebp - 0x7b4], 7
mov byte [ebp - 4], 0xd
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x670], 0x429d9c
cmp dword [ebp - 0x568], 8
lea esi, [ebp - 0x57c]
lea ecx, [ebp - 0x600]
cmovae esi, dword [ebp - 0x57c]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
push 0
lea eax, [ebp - 0x660]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x670]
mov dword [ebp - 0x428], 0x40ff
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov dword [ebp - 4], 0xf
mov eax, dword [ebp - 0x670]
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 - 0x670]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x674], eax
lea eax, [ebp - 0x660]
mov ecx, eax
mov dword [ebp - 0x430], eax
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x660]
mov dword [ebp - method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov byte [ebp - 0x618], 0
mov byte [ebp - 0x623], 0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov eax, dword [0x42fdc8]
mov ecx, dword [0x42fdcc]
mov dword [ebp - 0x614], 0
mov dword [ebp - 0x620], eax
mov dword [ebp - 0x61c], ecx
mov dword [ebp - 0x628], 0
push ecx
push 0x21
push esi
lea ecx, [ebp - 0x660]
mov byte [ebp - 4], 0x11
call fcn.004131f0
test eax, eax
jne 0x40e7e3
push eax
mov eax, dword [ebp - 0x670]
lea ecx, [ebp - 0x670]
push 2
add ecx, dword [eax + 4]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov eax, dword [ebp - 0x670]
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 - 0x670]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x674], eax
push 0xb0
lea eax, [ebp - 0x564]
mov byte [ebp - 4], 0x12
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x564], 0x429994
cmp dword [ebp - 0x450], 8
lea esi, [ebp - 0x464]
lea ecx, [ebp - 0x4fc]
cmovae esi, dword [ebp - 0x464]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
push 0
lea eax, [ebp - 0x560]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x564]
mov dword [ebp - 0x428], 0x41ff
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov dword [ebp - 4], 0x14
mov eax, dword [ebp - 0x564]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x564]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x568], eax
lea eax, [ebp - 0x560]
mov ecx, eax
mov dword [ebp - 0x430], eax
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x560]
mov dword [ebp - method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov byte [ebp - 0x518], 0
mov byte [ebp - 0x523], 0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov eax, dword [0x42fdc8]
mov ecx, dword [0x42fdcc]
mov dword [ebp - 0x514], 0
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x51c], ecx
mov dword [ebp - 0x528], 0
push ecx
push 0x22
push esi
lea ecx, [ebp - 0x560]
mov byte [ebp - 4], 0x16
call fcn.004131f0
test eax, eax
jne 0x40e937
push eax
mov eax, dword [ebp - 0x564]
lea ecx, [ebp - 0x564]
push 2
add ecx, dword [eax + 4]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov eax, dword [ebp - 0x564]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x564]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x568], eax
mov byte [ebp - 4], 0x17
xorps xmm0, xmm0
mov eax, dword [ebp - 0x670]
movlpd qword [ebp - 0x42c], xmm0
movlpd qword [ebp - 0x434], xmm0
mov byte [ebp - 0x427], 0
mov eax, dword [eax + 4]
mov word [ebp - 0x430], 1
movlpd qword [ebp - 0x4b4], xmm0
mov esi, dword [ebp + eax - 0x638]
test esi, esi
mov eax, dword [ebp - 0x564]
sete byte [ebp - 0x428]
mov eax, dword [eax + 4]
mov edi, dword [ebp + eax - 0x52c]
call fcn.00408620
push edi
push dword [ebp - 0x4b4]
lea ecx, [ebp - 0x4b4]
push dword [ebp - 0x430]
push dword [ebp - 0x434]
push dword [ebp - 0x428]
push esi
call fcn.00415d00
mov eax, dword [ebp - 0x564]
add esp, 0x18
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x564]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x568], eax
lea ecx, [ebp - 0x560]
call fcn.0040fed0
lea ecx, [ebp - 0x55c]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x4fc]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov eax, dword [ebp - 0x670]
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 - 0x670]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x674], eax
lea ecx, [ebp - 0x660]
call fcn.0040fed0
lea ecx, [ebp - 0x658]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x600]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov dword [ebp - 4], 0xc
call fcn.00408620
mov ecx, 3
call fcn.004087e0
mov ecx, 0x2f
lea edi, [ebp - 0x674]
mov esi, 0x429bc0
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [0x42fc1c], 2
jl 0x40ebe0
movaps xmm4, xmmword [0x42a410]
mov ecx, 4
movaps xmm3, xmmword [0x42a4b0]
movaps xmm6, xmmword [0x42a430]
movd xmm5, ecx
mov ecx, 0x1f
movd xmm7, ecx
nop word [eax + eax]
movd xmm0, esi
lea eax, [esi + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [str.66666666]
paddw xmm1, xmm0
movq xmm0, qword [ebp + esi*2 - 0x674]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [ebp + esi*2 - 0x674], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [str.66666666]
paddw xmm1, xmm0
movq xmm0, qword [ebp + esi*2 - 0x66c]
pxor xmm1, xmm0
movq qword [ebp + esi*2 - 0x66c], xmm1
add esi, 8
cmp esi, 0x58
jl 0x40eae0
cmp esi, 0x5e
jge 0x40ec09
nop dword [eax + eax]
mov eax, 0x4ec4ec4f
mov ecx, esi
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x34
sub ecx, eax
add ecx, 0x36
xor word [ebp + esi*2 - 0x674], cx
inc esi
cmp esi, 0x5e
jl 0x40ebe0
lea edx, [ebp - 0x674]
lea ecx, [ebp - 0x494]
call fcn.004084a0
mov byte [ebp - 4], 0x19
lea edi, [ebp - 0x744]
mov ecx, 0x63
mov esi, 0x4299d8
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor esi, esi
cmp dword [0x42fc1c], 2
jl 0x40ed70
movaps xmm4, xmmword [0x42a410]
mov eax, 4
movaps xmm3, xmmword [0x42a4b0]
movaps xmm6, xmmword [0x42a430]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
nop dword [eax + eax]
movd xmm0, esi
lea eax, [esi + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [str.66666666]
paddw xmm1, xmm0
movq xmm0, qword [ebp + esi*2 - 0x744]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [ebp + esi*2 - 0x744], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [str.66666666]
paddw xmm1, xmm0
movq xmm0, qword [ebp + esi*2 - 0x73c]
pxor xmm1, xmm0
movq qword [ebp + esi*2 - 0x73c], xmm1
add esi, 8
cmp esi, 0xc0
jl 0x40ec70
cmp esi, 0xc7
jge 0x40ed9c
nop
mov eax, 0x4ec4ec4f
mov ecx, esi
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x34
sub ecx, eax
add ecx, 0x36
xor word [ebp + esi*2 - 0x744], cx
inc esi
cmp esi, 0xc7
jl 0x40ed70
lea edx, [ebp - 0x744]
lea ecx, [ebp - 0x47c]
call fcn.004084a0
mov byte [ebp - 4], 0x1a
lea edi, [ebp - 0x6d0]
mov ecx, 0x46
mov esi, str.es_JYIUMJV__bd__i___m_r929_a__a9x___2__x_L6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor esi, esi
cmp dword [0x42fc1c], 2
jl 0x40ef00
movaps xmm4, xmmword [0x42a410]
mov eax, 4
movaps xmm3, xmmword [0x42a4b0]
movaps xmm6, xmmword [0x42a430]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
nop dword [eax + eax]
movd xmm0, esi
lea eax, [esi + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [str.66666666]
paddw xmm1, xmm0
movq xmm0, qword [ebp + esi*2 - 0x6d0]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [ebp + esi*2 - 0x6d0], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [str.66666666]
paddw xmm1, xmm0
movq xmm0, qword [ebp + esi*2 - 0x6c8]
pxor xmm1, xmm0
movq qword [ebp + esi*2 - 0x6c8], xmm1
add esi, 8
cmp esi, 0x88
jl 0x40ee00
cmp esi, 0x8d
jge 0x40ef2c
nop
mov eax, 0x4ec4ec4f
mov ecx, esi
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x34
sub ecx, eax
add ecx, 0x36
xor word [ebp + esi*2 - 0x6d0], cx
inc esi
cmp esi, 0x8d
jl 0x40ef00
lea edx, [ebp - 0x6d0]
lea ecx, [ebp - 0x44c]
call fcn.004084a0
mov byte [ebp - 4], 0x1b
mov eax, 0x7ffffffe
mov edx, dword [ebp - 0x484]
sub eax, edx
mov esi, dword [ebp - 0x454]
cmp eax, esi
jae 0x40ef63
call fcn.004021f0
mov eax, 0x40ea77
ret
cmp dword [ebp - 0x480], 8
lea ecx, [ebp - 0x494]
push esi
cmovae ecx, dword [ebp - 0x494]
lea eax, [ebp - 0x464]
cmp dword [ebp - 0x450], 8
cmovae eax, dword [ebp - 0x464]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x430]
lea ecx, [ebp - 0x7c8]
call fcn.00417ab0
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x47c]
cmp dword [ebp - 0x468], 8
lea ecx, [ebp - 0x7c8]
push dword [ebp - 0x46c]
cmovae eax, dword [ebp - 0x47c]
push eax
call fcn.00413530
mov dword [ebp - 0x7a0], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x7b0], xmm0
mov dword [ebp - 0x79c], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x7b0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x7a0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0x44c]
cmp dword [ebp - 0x438], 8
lea ecx, [ebp - 0x7b0]
push dword [ebp - 0x43c]
cmovae eax, dword [ebp - 0x44c]
push eax
call fcn.00413530
mov dword [ebp - 0x49c], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x4ac], xmm0
mov dword [ebp - 0x498], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4ac], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x49c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x79c]
cmp ecx, 8
jb 0x40f0c5
mov edx, dword [ebp - 0x7b0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40f0bb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f118
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov dword [ebp - 0x7a0], 0
mov dword [ebp - 0x79c], 7
mov word [ebp - 0x7b0], ax
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x7b4]
cmp ecx, 8
jb 0x40f128
mov edx, dword [ebp - 0x7c8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40f11e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40f11e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004228bd
add esp, 8
sub esp, 0x18
mov dword [ebp - 0x7b8], 0
mov esi, esp
mov dword [ebp - 0x7b4], 7
xor eax, eax
mov dword [ebp - 0x430], esi
mov word [ebp - 0x7c8], ax
push 0x50
push eax
lea eax, [ebp - 0x794]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x794]
call fcn.00410340
mov byte [ebp - 4], 0x21
lea edx, [ebp - 0x4ac]
cmp dword [ebp - 0x498], 8
lea ecx, [ebp - 0x794]
mov eax, dword [ebp - 0x49c]
cmovae edx, dword [ebp - 0x4ac]
lea eax, [edx + eax*2]
push eax
push edx
push esi
call fcn.00412250
lea ecx, [ebp - 0x794]
mov byte [ebp - 4], 0x20
call fcn.00410280
call fcn.00409c00
add esp, 0x18
mov ecx, 3
call fcn.004087e0
call fcn.0040a060
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x498]
cmp ecx, 8
jb 0x40f206
mov edx, dword [ebp - 0x4ac]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40f1fc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f385
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x438]
mov dword [ebp - 0x49c], 0
mov dword [ebp - 0x498], 7
mov word [ebp - 0x4ac], ax
cmp ecx, 8
jb 0x40f267
mov edx, dword [ebp - 0x44c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40f25d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f385
push ecx
push edx
call fcn.004228bd
add esp, 8
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x468]
cmp ecx, 8
jb 0x40f2ab
mov edx, dword [ebp - 0x47c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40f2a1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f385
push ecx
push edx
call fcn.004228bd
add esp, 8
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x480]
cmp ecx, 8
jb 0x40f2ef
mov edx, dword [ebp - 0x494]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40f2e5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f385
push ecx
push edx
call fcn.004228bd
add esp, 8
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x450]
cmp ecx, 8
jb 0x40f32f
mov edx, dword [ebp - 0x464]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40f325
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f385
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x568]
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x450], 7
mov word [ebp - 0x464], ax
cmp ecx, 8
jb 0x40f395
mov edx, dword [ebp - 0x57c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40f38b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40f38b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004228bd
add esp, 8
xor eax, eax
mov dword [ebp - 0x56c], 0
mov dword [ebp - 0x568], 7
mov word [ebp - 0x57c], ax
call fcn.00408620
sub esp, 8
call fcn.0040d8a0
add esp, 8
call fcn.0040db80
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
nop dword [eax]
mov ecx, 2
call fcn.004087e0
call fcn.0040c150
jmp 0x40f3d0