Function at 0x404cc0
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x5befac]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov eax, ecx
push 1
mov dword [ebp - 0x50], eax
call fcn.0042158b
call fcn.00407550
push 0x5a2734
push str.C:_Game_res_Data_GameCfg.cfg
call fcn.0054b0b6
mov esi, eax
add esp, 8
test esi, esi
jne 0x404d0b
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005428fa
mov esp, ebp
pop ebp
ret
push ebx
push edi
push 2
push 0
push esi
call fcn.0054c3e2
push esi
call fcn.0054c954
push 0
push 0
push esi
mov ebx, eax
call fcn.0054c3e2
push 0x2000000
call fcn.0040a2f2
push esi
mov edi, eax
push ebx
push 1
push edi
mov dword [ebp - 0x48], edi
mov dword [edi], 0
call fcn.0054cdbb
push esi
call fcn.0054b32a
add esp, 0x34
xor edx, edx
xor ecx, ecx
test ebx, ebx
je 0x404d74
mov esi, 0x157a
nop
mov al, byte [edx + str._9j_4AAQSkZJRgABAQAAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_9j_4AAQSkZJRgABAQAAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQE_t_t_t_t_t_2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_wAARCAGAAYADASIAAhEBAxEB_8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL_8QAtRAAAgEDAwIEAwUFBA_t_t_t_t_tQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJy_t_t_t_t_ttLT1NXW19jZ2uHi4Tl5ufo6erx8vP09fb3Pn6_8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL_8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2_t_t_t_t_tNzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3Pn6_9oADAMBAAIRAxEAPwD9UKKKK_14P8rwooooAKK_t_t_t_t_tKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiuBIvxO8EfCnwvqfi_t_t_t_t_t3xxr1joukaXA09xPczxIxCiXiOJpVkkJKDIQEjnuazq1qOHpVK1erClRpRc6lWpJQpwhFNuUpSdkkottt_jq9KVKrXqQo0Kc6tWpKMKdOnFynOcpcsYxirttvRJK92tdUd4zoilnZUUdWZgqgc8kk4H3T1PY8nBJYvjl2D8Af2edLuNRI_jv_t_t_t_t_tTNOMSOy21vLHezu67gEMNrO8gZiAANuevGQa_Fr4z_8FLP2iP2s_HM3wJ_YB8Davrt5eXbaYfGlpDOLSVZJHilkxdwNBGEXdtPmDPzHJAIr9J_2H_8Ag2A8b_GDUrT4vftfEHVtf1LVnttSvfAdybtYIiWEph0WdyYvm3knC8ZKnowbbuOfp_t_t_t_t_tFZPk1Svl_CmGhneMpNwnj6knHLKU05K9Nxlz4qzjb3XCm7pxqTV2fv8AwX4DZrm0KWO4nxEsows1CcMDTip5jVg3O3OmnDDqSV7S56i2lBWTf5s_GL_gvJFYXM4DnwY8QM9EtJcTeIbe31eG1MCyHMjFrJ40UovXfjBOTngfq1wZ2l4f_bS_t_t_t_t_tFSeNdP0waJrNmqrrWimdp5LGRpnhjDyNjJcxsSMDBODyAK_bP9qH9hj9hP8AYW_YHMF5oHwp8MaLomkFJrWW8voba5uGuZbW7gtZEuLu3M6uZ9pG185xkkg1_JZ_wQa8Nahp_gn40J_Kkj0LxJ4ku5dDY5EJtode1DasIxt2rGygbeBgjAP_t_t_t_t_tX5Xwg8WONLP45dnGMp4jLsXhMVUnhaWFo0qWEdGEpU6lKUI1tzqNN0qSupxu3K7PpvFLwx4P4V4HqZhleEnh8fhsThadPEVcRVqVsT7WtKFSFSMpzb5ff_dwTXK9lFs_oJooqN5oYwTJLHGB1LuqgfXcwxdf1_8A1nf9fx1P5WSb219P_t_t_t_t_tu8_6631JKKzZNZ0aLPm6tpseOvmX9omPrunGPx_Wqp8UeGFznxHoQx1zqnDHbnN1x_nqeah1KS3qQXrOK_ORap1H8MJv0jJS2T_P73qblFYP_AAlfhXp_wk2gfDnTf8A5Kpw8UeGG74j0I_TV9OPr6XR9P59cHK9rR_50__A4__JD9lV_5_t_t_t_t_t9VP_AACXku3p9666vcorLTXNDlGYtZ0uQdimo2bDv_dnPp6nv1wc2kvrKQZjvLVx6pcQsO_dZD6fz64OaU4P4ZxfpJP8m_66slwmt4yXrF_5f15lqimCSNhlZEYeodSPbox_nJpwZT0YH6Ef4n_AD3qvTvx_rz3J_r8vP09erWikyvqPzHv7_t_t_t_t_t38eDlpkjAyZEA9Sygdx3Pt_PnIJIH9fmu77fnq2m2iqcmoafCMy31nEPWS6gQY9ctIP5_iaw9R8bDtJgluNQ8T6FbRQqWkaXV9OQgDdn5WugcjYSR15HUmolVpQTc6kIpK7cpxSS11d3_AHX_AMHd3ClUm7Qpzm7pWjCTd22lsnvyv_Pqo_t_t_t_t_tqKWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4Tl5ufo6erx8vP09fb3Pn6_8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL_8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoE_t_t_t_t_tIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09f_t_t_t_t_tb3Pn6_9oADAMBAAIRAxEAPwD9UKKKK_14P8rwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo_t_t_t_t_toooAKKKKACiiigAooooAKKKKACiiuBIvxO8EfCnwvqfi3xxr1joukaXA09xPczxIxCiXiOJpVkkJKDIQEjnuazq1qOHpVK1erClRpRc6lWpJQpwhFNuUpSdkkottt_jq9KVKrXqQo0Kc6tWpKMKdOnFynOcpcsYxirttvRJK92tdUd4zoilnZU_t_t_t_t_tUdWZgqgc8kk4H3T1PY8nBJYvjl2D8Af2edLuNRI_jvTNOMSOy21vLHezu67gEMNrO8gZiAANuevGQa_Fr4z_8FLP2iP2s_HM3wJ_YB8Davrt5eXbaYfGlpDOLSVZJHilkxdwNBGEXdtPmDPzHJAIr9J_2H_8Ag2A8b_GDUrT4vftfEHVtf1_t_t_t_t_tLVnttSvfAdybtYIiWEph0WdyYvm3knC8ZKnowbbuOfpFZPk1Svl_CmGhneMpNwnj6knHLKU05K9Nxlz4qzjb3XCm7pxqTV2fv8AwX4DZrm0KWO4nxEsows1CcMDTip5jVg3O3OmnDDqSV7S56i2lBWTf5s_GL_gvJFYXM4DnwY8QM9EtJcT_t_t_t_t_teIbe31eG1MCyHMjFrJ40UovXfjBOTngfq1wZ2l4f_bSFSeNdP0waJrNmqrrWimdp5LGRpnhjDyNjJcxsSMDBODyAK_bP9qH9hj9hP8AYW_YHMF5oHwp8MaLomkFJrWW8voba5uGuZbW7gtZEuLu3M6uZ9pG185xkkg1_JZ_wQa8Nahp_gn_t_t_t_t_t40J_Kkj0LxJ4ku5dDY5EJtode1DasIxt2rGygbeBgjA]
xor byte [ecx + edi], al
lea eax, [edx + 1]
cdq
inc ecx
idiv esi
cmp ecx, ebx
jb 0x404d60
mov eax, dword [edi]
mov dword [0x5c9ce8], eax
cmp eax, 0x12
jle 0x404db4
push 0
push 0
push 0x5a2758
call fcn.0041a50b
push edi
call fcn.0040a2fb
mov ecx, dword [ebp - 0x50]
add esp, 4
push 0
call fcn.0042158b
pop edi
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005428fa
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 4]
mov ebx, 0x7e
mov dword [0x5c9cec], ecx
mov ecx, dword [edi + 8]
mov dword [0x5c9cf0], ecx
mov ecx, dword [edi + 0xc]
mov dword [0x5c9cf4], ecx
mov ecx, dword [edi + 0x10]
mov dword [0x5c9cf8], ecx
mov ecx, dword [edi + 0x14]
mov dword [0x5c9cfc], ecx
mov ecx, dword [edi + 0x18]
mov dword [0x5c9d00], ecx
mov ecx, dword [edi + 0x1c]
mov dword [0x5c9d04], ecx
mov ecx, dword [edi + 0x20]
mov dword [0x5c9d08], ecx
mov ecx, dword [edi + 0x24]
mov dword [0x5c9d0c], ecx
mov ecx, dword [edi + 0x28]
mov dword [0x5c9d10], ecx
mov ecx, dword [edi + 0x2c]
mov dword [0x5c9d14], ecx
mov cx, word [edi + 0x30]
mov word [0x5c9d18], cx
movups xmm0, xmmword [edi + 0x32]
mov dword [ebp - 0x20], 0
movups xmmword [0x5c9d1a], xmm0
movups xmm0, xmmword [edi + 0x42]
movups xmmword [0x5c9d2a], xmm0
movups xmm1, xmmword [edi + 0x52]
movups xmmword [0x5c9d3a], xmm1
movups xmm0, xmmword [edi + 0x62]
psrldq xmm1, 8
movups xmmword [0x5c9d4a], xmm0
movq xmm0, qword [edi + 0x72]
movq qword [0x5c9d5a], xmm0
mov ecx, dword [edi + 0x7a]
mov dword [0x5c9d62], ecx
movd ecx, xmm1
mov dword [0x5c9d42], ecx
test ecx, ecx
jle 0x40529e
push 0x2c
call fcn.0040a2bb
mov esi, eax
add esp, 4
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x404ee8
push 0x2c
push 0
push esi
call fcn.00545a70
mov dword [esi + 8], 0
add esp, 0xc
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
jmp 0x404eed
xor esi, esi
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + ebx]
mov dword [esi], eax
mov eax, dword [edi + ebx + 4]
add ebx, 8
mov dword [esi + 4], eax
cmp dword [esi], 0
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], 0
jle 0x405067
nop
push 0x18
call fcn.0040a2bb
mov ecx, eax
mov dword [ebp - 0x24], eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x404f51
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0x4e20
mov dword [ecx + 8], 0
jmp 0x404f56
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [edi + ebx]
mov dword [ecx], eax
mov eax, dword [edi + ebx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edi + ebx + 8]
add ebx, 0xc
mov dword [ecx + 8], eax
cmp dword [ecx], 0
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x3c], 0
jle 0x40504c
lea eax, [edi + ebx]
lea esi, [ecx + 0xc]
mov dword [ebp - 0x38], eax
mov edi, eax
nop word [eax + eax]
mov al, byte [edi + 8]
lea edx, [ebp - 0x10]
movq xmm0, qword [edi]
lea edi, [edi + 9]
mov byte [ebp - 0x49], al
add ebx, 9
mov byte [ebp - 8], al
mov eax, dword [esi + 4]
movq qword [ebp - 0x44], xmm0
movq qword [ebp - 0x10], xmm0
cmp edx, eax
jae 0x40500d
mov edx, dword [esi]
lea ecx, [ebp - 0x10]
cmp edx, ecx
mov ecx, dword [ebp - 0x24]
ja 0x40500d
lea ecx, [ebp - 0x10]
mov eax, 0x38e38e39
sub ecx, edx
imul ecx
mov ecx, dword [esi + 4]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x38], eax
cmp ecx, dword [esi + 8]
jne 0x404fee
push ecx
mov ecx, esi
call fcn.004088c0
mov eax, dword [ebp - 0x38]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x405008
lea eax, [eax + eax*8]
add eax, dword [esi]
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov al, byte [eax + 8]
mov byte [ecx + 8], al
mov ecx, dword [ebp - 0x24]
jmp 0x405033
cmp eax, dword [esi + 8]
jne 0x405022
push ecx
mov ecx, esi
call fcn.004088c0
movq xmm0, qword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
mov eax, dword [esi + 4]
test eax, eax
je 0x405033
mov dl, byte [ebp - 0x49]
movq qword [eax], xmm0
mov byte [eax + 8], dl
mov edx, dword [ebp - 0x3c]
add dword [esi + 4], 9
inc edx
mov dword [ebp - 0x3c], edx
cmp edx, dword [ecx]
jl 0x404f90
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
push eax
lea ecx, [esi + 8]
call fcn.00408510
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, dword [esi]
jl 0x404f10
cmp dword [esi], 0
mov dword [ebp - 0x3c], 0
jle 0x40510b
push 0x10
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4050a4
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x4050a6
xor ecx, ecx
mov edx, dword [ebp - 0x2c]
xor esi, esi
mov eax, dword [edi + ebx]
add ebx, 4
mov dword [ecx], eax
mov dword [ebp - 0x34], ecx
cmp dword [edx], esi
jle 0x4050eb
lea eax, [ecx + 4]
mov dword [ebp - 0x38], eax
push 4
call fcn.0040a2bb
mov ecx, dword [edi + ebx]
add esp, 4
mov dword [ebp - 0x28], eax
add ebx, 4
mov dword [eax], ecx
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
push eax
call fcn.00408740
mov eax, dword [ebp - 0x2c]
inc esi
cmp esi, dword [eax]
jl 0x4050c0
mov edx, eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [edx + 0x14]
call fcn.00408740
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x2c]
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, dword [eax]
jl 0x405077
mov esi, eax
cmp dword [esi + 4], 0
mov dword [ebp - 0x3c], 0
jle 0x405278
nop dword [eax]
push 0x18
call fcn.0040a2bb
mov ecx, eax
mov dword [ebp - 0x24], eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x405161
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0x4e20
mov dword [ecx + 8], 0
jmp 0x405166
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [edi + ebx]
mov dword [ecx], eax
mov eax, dword [edi + ebx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edi + ebx + 8]
add ebx, 0xc
mov dword [ecx + 8], eax
cmp dword [ecx], 0
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], 0
jle 0x40525c
lea eax, [edi + ebx]
lea esi, [ecx + 0xc]
mov dword [ebp - 0x28], eax
mov edi, eax
nop word [eax + eax]
mov al, byte [edi + 8]
lea edx, [ebp - 0x1c]
movq xmm0, qword [edi]
lea edi, [edi + 9]
mov byte [ebp - 0x49], al
add ebx, 9
mov byte [ebp - 0x14], al
mov eax, dword [esi + 4]
movq qword [ebp - 0x44], xmm0
movq qword [ebp - 0x1c], xmm0
cmp edx, eax
jae 0x40521d
mov edx, dword [esi]
lea ecx, [ebp - 0x1c]
cmp edx, ecx
mov ecx, dword [ebp - 0x24]
ja 0x40521d
lea ecx, [ebp - 0x1c]
mov eax, 0x38e38e39
sub ecx, edx
imul ecx
mov ecx, dword [esi + 4]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x28], eax
cmp ecx, dword [esi + 8]
jne 0x4051fe
push ecx
mov ecx, esi
call fcn.004088c0
mov eax, dword [ebp - 0x28]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x405218
lea eax, [eax + eax*8]
add eax, dword [esi]
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov al, byte [eax + 8]
mov byte [ecx + 8], al
mov ecx, dword [ebp - 0x24]
jmp 0x405243
cmp eax, dword [esi + 8]
jne 0x405232
push ecx
mov ecx, esi
call fcn.004088c0
movq xmm0, qword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
mov eax, dword [esi + 4]
test eax, eax
je 0x405243
mov dl, byte [ebp - 0x49]
movq qword [eax], xmm0
mov byte [eax + 8], dl
mov edx, dword [ebp - 0x34]
add dword [esi + 4], 9
inc edx
mov dword [ebp - 0x34], edx
cmp edx, dword [ecx]
jl 0x4051a0
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp - 0x2c]
lea eax, [ebp - 0x38]
push eax
lea ecx, [esi + 0x20]
call fcn.00408510
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, dword [esi + 4]
jl 0x405120
lea eax, [ebp - 0x30]
mov ecx, 0x5c9d66
push eax
call fcn.00408510
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, dword [0x5c9d42]
jl 0x404e87
mov eax, dword [0x5c9ce8]
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x30], ecx
test ecx, ecx
jle 0x40531b
nop dword [eax + eax]
push 0x18
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4052cd
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movq qword [ecx + 0x10], xmm0
jmp 0x4052cf
xor ecx, ecx
movups xmm0, xmmword [edi + ebx]
cmp dword [0x5c9ce8], 9
mov dword [ebp - 0x20], ecx
movups xmmword [ecx], xmm0
jle 0x4052f4
movq xmm0, qword [edi + ebx + 0x10]
mov esi, 0x18
movq qword [ecx + 0x10], xmm0
jmp 0x405300
mov eax, dword [edi + ebx + 0x10]
mov esi, 0x14
mov dword [ecx + 0x10], eax
lea eax, [ebp - 0x20]
mov ecx, 0x5c9d72
push eax
call fcn.00408510
add ebx, esi
sub dword [ebp - 0x30], 1
jne 0x4052b0
mov eax, dword [0x5c9ce8]
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x28], ecx
test ecx, ecx
jle 0x405373
lea esi, [edi + ebx]
mov edi, ecx
mov eax, edi
shl eax, 4
add ebx, eax
push 0x10
call fcn.0040a2bb
add esp, 4
test eax, eax
je 0x40534a
xorps xmm0, xmm0
movups xmmword [eax], xmm0
jmp 0x40534c
xor eax, eax
movups xmm0, xmmword [esi]
mov dword [ebp - 0x20], eax
mov ecx, 0x5c9d7e
add esi, 0x10
movups xmmword [eax], xmm0
lea eax, [ebp - 0x20]
push eax
call fcn.00408510
sub edi, 1
jne 0x405334
mov eax, dword [0x5c9ce8]
mov edi, dword [ebp - 0x48]
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x28], ecx
test ecx, ecx
jle 0x4053e1
lea esi, [edi + ebx]
mov edi, ecx
lea eax, [edi + edi*2]
lea ebx, [ebx + eax*4]
nop dword [eax + eax]
push 0xc
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4053b0
xorps xmm0, xmm0
movq qword [ecx], xmm0
mov dword [ecx + 8], 0
jmp 0x4053b2
xor ecx, ecx
movq xmm0, qword [esi]
movq qword [ecx], xmm0
mov eax, dword [esi + 8]
add esi, 0xc
mov dword [ecx + 8], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], ecx
mov ecx, 0x5c9d8a
push eax
call fcn.00408510
sub edi, 1
jne 0x405390
mov eax, dword [0x5c9ce8]
mov edi, dword [ebp - 0x48]
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x20], ecx
test ecx, ecx
jle 0x4054bc
push 0x2a
call fcn.0040a2bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x405454
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x25], 0
mov byte [ecx + 0x24], 0
mov byte [ecx + 0x29], 0
jmp 0x405456
xor ecx, ecx
movups xmm0, xmmword [edi + ebx]
cmp dword [0x5c9ce8], 4
mov dword [ebp - 0x28], ecx
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edi + ebx + 0x10]
movups xmmword [ecx + 0x10], xmm0
movq xmm0, qword [edi + ebx + 0x20]
movq qword [ecx + 0x20], xmm0
jge 0x40548f
mov al, byte [edi + ebx + 0x28]
mov esi, 0x29
mov byte [ecx + 0x28], al
mov byte [ecx + 0x29], 0
jmp 0x40549d
mov ax, word [edi + ebx + 0x28]
mov esi, 0x2a
mov word [ecx + 0x28], ax
lea eax, [ebp - 0x28]
mov ecx, 0x5c9d96
push eax
call fcn.00408510
add ebx, esi
sub dword [ebp - 0x20], 1
jne 0x4053f2
mov eax, dword [0x5c9ce8]
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x20], ecx
test ecx, ecx
jle 0x405672
nop dword [eax]
push 0x91
call fcn.0040a2bb
mov esi, eax
mov dword [ebp - 0x2c], eax
add esp, 4
mov dword [ebp - 0x40], esi
test esi, esi
je 0x405529
push 0x80
lea eax, [esi + 4]
mov dword [esi + 0x84], 0
push 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
push eax
mov dword [esi], 0
call fcn.00545a70
add esp, 0xc
mov byte [esi + 0x90], 0
jmp 0x40552e
xor esi, esi
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + ebx]
mov ecx, 0x20
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + ebx + 4]
add ebx, 8
mov dword [ebp - 0x30], esi
mov dword [esi], eax
lea esi, [edi + ebx]
sub ebx, 0xffffff80
cmp dword [ebp - 0x24], 0
lea edi, [edx + 4]
rep movsd dword es:[edi], dword [esi]
jle 0x405636
mov esi, dword [ebp - 0x48]
lea eax, [edx + 0x84]
mov dword [ebp - 0x38], eax
nop dword [eax]
push 0x2a
call fcn.0040a2bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x4055d2
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x25], 0
mov byte [ecx + 0x24], 0
mov byte [ecx + 0x29], 0
jmp 0x4055d4
xor ecx, ecx
movups xmm0, xmmword [esi + ebx]
cmp dword [0x5c9ce8], 4
mov dword [ebp - 0x28], ecx
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi + ebx + 0x10]
movups xmmword [ecx + 0x10], xmm0
movq xmm0, qword [esi + ebx + 0x20]
movq qword [ecx + 0x20], xmm0
jge 0x40560d
mov al, byte [esi + ebx + 0x28]
mov edi, 0x29
mov byte [ecx + 0x28], al
mov byte [ecx + 0x29], 0
jmp 0x40561b
mov ax, word [esi + ebx + 0x28]
mov edi, 0x2a
mov word [ecx + 0x28], ax
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x28]
push eax
call fcn.00408510
add ebx, edi
sub dword [ebp - 0x24], 1
jne 0x405570
mov edx, dword [ebp - 0x2c]
cmp dword [0x5c9ce8], 0x11
mov edi, dword [ebp - 0x48]
jl 0x40564e
mov al, byte [edi + ebx]
inc ebx
mov byte [edx + 0x90], al
jmp 0x405655
mov byte [edx + 0x90], 0
lea eax, [ebp - 0x30]
mov ecx, 0x5c9da2
push eax
call fcn.00408510
sub dword [ebp - 0x20], 1
jne 0x4054d0
mov eax, dword [0x5c9ce8]
mov esi, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x34], esi
test esi, esi
jle 0x40589d
push 0x18
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4056b5
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
jmp 0x4056b7
xor ecx, ecx
mov edx, dword [edi + ebx]
movq xmm0, qword [edi + ebx + 4]
movq qword [ecx], xmm0
mov eax, dword [edi + ebx + 0xc]
add ebx, 0x10
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x20], edx
mov dword [ecx + 8], eax
test edx, edx
jle 0x40587e
lea eax, [ecx + 0xc]
mov dword [ebp - 0x40], eax
push 0x91
call fcn.0040a2bb
mov esi, eax
mov dword [ebp - 0x2c], eax
add esp, 4
mov dword [ebp - 0x28], esi
test esi, esi
je 0x40573b
push 0x80
lea eax, [esi + 4]
mov dword [esi + 0x84], 0
push 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
push eax
mov dword [esi], 0
call fcn.00545a70
add esp, 0xc
mov byte [esi + 0x90], 0
jmp 0x405740
xor esi, esi
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + ebx]
mov ecx, 0x20
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + ebx + 4]
add ebx, 8
mov dword [ebp - 0x3c], esi
mov dword [esi], eax
lea esi, [edi + ebx]
sub ebx, 0xffffff80
cmp dword [ebp - 0x24], 0
lea edi, [edx + 4]
rep movsd dword es:[edi], dword [esi]
jle 0x405846
mov esi, dword [ebp - 0x48]
lea eax, [edx + 0x84]
mov dword [ebp - 0x38], eax
nop dword [eax + eax]
push 0x2a
call fcn.0040a2bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x28], ecx
test ecx, ecx
je 0x4057e2
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x25], 0
mov byte [ecx + 0x24], 0
mov byte [ecx + 0x29], 0
jmp 0x4057e4
xor ecx, ecx
movups xmm0, xmmword [esi + ebx]
cmp dword [0x5c9ce8], 4
mov dword [ebp - 0x28], ecx
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi + ebx + 0x10]
movups xmmword [ecx + 0x10], xmm0
movq xmm0, qword [esi + ebx + 0x20]
movq qword [ecx + 0x20], xmm0
jge 0x40581d
mov al, byte [esi + ebx + 0x28]
mov edi, 0x29
mov byte [ecx + 0x28], al
mov byte [ecx + 0x29], 0
jmp 0x40582b
mov ax, word [esi + ebx + 0x28]
mov edi, 0x2a
mov word [ecx + 0x28], ax
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x28]
push eax
call fcn.00408510
add ebx, edi
sub dword [ebp - 0x24], 1
jne 0x405780
mov edx, dword [ebp - 0x2c]
cmp dword [0x5c9ce8], 0x11
mov edi, dword [ebp - 0x48]
jl 0x40585e
mov al, byte [edi + ebx]
inc ebx
mov byte [edx + 0x90], al
jmp 0x405865
mov byte [edx + 0x90], 0
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x3c]
push eax
call fcn.00408510
sub dword [ebp - 0x20], 1
jne 0x4056e2
mov esi, dword [ebp - 0x34]
lea eax, [ebp - 0x30]
mov ecx, 0x5c9dae
push eax
call fcn.00408510
sub esi, 1
mov dword [ebp - 0x34], esi
jne 0x405683
mov eax, dword [0x5c9ce8]
mov esi, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x34], esi
test esi, esi
jle 0x405acd
nop
push 0x18
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4058e2
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
jmp 0x4058e4
xor ecx, ecx
mov edx, dword [edi + ebx]
movq xmm0, qword [edi + ebx + 4]
movq qword [ecx], xmm0
mov eax, dword [edi + ebx + 0xc]
add ebx, 0x10
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x20], edx
mov dword [ecx + 8], eax
test edx, edx
jle 0x405aae
lea eax, [ecx + 0xc]
mov dword [ebp - 0x3c], eax
nop
push 0x91
call fcn.0040a2bb
mov esi, eax
mov dword [ebp - 0x2c], eax
add esp, 4
mov dword [ebp - 0x40], esi
test esi, esi
je 0x405969
push 0x80
lea eax, [esi + 4]
mov dword [esi + 0x84], 0
push 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
push eax
mov dword [esi], 0
call fcn.00545a70
add esp, 0xc
mov byte [esi + 0x90], 0
jmp 0x40596e
xor esi, esi
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + ebx]
mov ecx, 0x20
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + ebx + 4]
add ebx, 8
mov dword [ebp - 0x38], esi
mov dword [esi], eax
lea esi, [edi + ebx]
sub ebx, 0xffffff80
cmp dword [ebp - 0x24], 0
lea edi, [edx + 4]
rep movsd dword es:[edi], dword [esi]
jle 0x405a76
mov esi, dword [ebp - 0x48]
lea eax, [edx + 0x84]
mov dword [ebp - 0x28], eax
nop dword [eax]
push 0x2a
call fcn.0040a2bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x405a12
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x25], 0
mov byte [ecx + 0x24], 0
mov byte [ecx + 0x29], 0
jmp 0x405a14
xor ecx, ecx
movups xmm0, xmmword [esi + ebx]
cmp dword [0x5c9ce8], 4
mov dword [ebp - 0x40], ecx
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi + ebx + 0x10]
movups xmmword [ecx + 0x10], xmm0
movq xmm0, qword [esi + ebx + 0x20]
movq qword [ecx + 0x20], xmm0
jge 0x405a4d
mov al, byte [esi + ebx + 0x28]
mov edi, 0x29
mov byte [ecx + 0x28], al
mov byte [ecx + 0x29], 0
jmp 0x405a5b
mov ax, word [esi + ebx + 0x28]
mov edi, 0x2a
mov word [ecx + 0x28], ax
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x40]
push eax
call fcn.00408510
add ebx, edi
sub dword [ebp - 0x24], 1
jne 0x4059b0
mov edx, dword [ebp - 0x2c]
cmp dword [0x5c9ce8], 0x11
mov edi, dword [ebp - 0x48]
jl 0x405a8e
mov al, byte [edi + ebx]
inc ebx
mov byte [edx + 0x90], al
jmp 0x405a95
mov byte [edx + 0x90], 0
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x38]
push eax
call fcn.00408510
sub dword [ebp - 0x20], 1
jne 0x405910
mov esi, dword [ebp - 0x34]
lea eax, [ebp - 0x30]
mov ecx, 0x5c9dba
push eax
call fcn.00408510
sub esi, 1
mov dword [ebp - 0x34], esi
jne 0x4058b0
mov eax, dword [0x5c9ce8]
cmp eax, 1
jle 0x405b3c
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
jle 0x405b3c
lea esi, [edi + ebx]
mov edi, ecx
lea eax, [edi + edi*2]
lea ebx, [ebx + eax*4]
nop word [eax + eax]
push 0xc
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x405b10
xorps xmm0, xmm0
movq qword [ecx], xmm0
mov dword [ecx + 8], 0
jmp 0x405b12
xor ecx, ecx
movq xmm0, qword [esi]
movq qword [ecx], xmm0
mov eax, dword [esi + 8]
add esi, 0xc
mov dword [ecx + 8], eax
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], ecx
call fcn.004083f0
sub edi, 1
jne 0x405af0
mov eax, dword [0x5c9ce8]
mov edi, dword [ebp - 0x48]
cmp eax, 0x10
jl 0x405b63
mov cl, byte [edi + ebx]
mov byte [0x5c9b74], cl
mov ecx, dword [edi + ebx + 1]
mov dword [0x5c9b75], ecx
mov ecx, dword [edi + ebx + 5]
add ebx, 9
mov dword [0x5c9b79], ecx
jmp 0x405b96
lea ecx, [eax - 5]
cmp ecx, 0xa
ja 0x405b96
mov cl, byte [edi + ebx]
mov byte [0x5c9b74], cl
mov ecx, dword [edi + ebx + 1]
mov dword [0x5c9b75], ecx
mov ecx, dword [edi + ebx + 5]
mov dword [0x5c9b79], ecx
mov ecx, dword [edi + ebx + 9]
add ebx, 0xd
test ecx, ecx
jle 0x405b96
lea ebx, [ebx + ecx*4]
cmp eax, 0x10
jl 0x405d1c
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x34], ecx
test ecx, ecx
jle 0x405e43
push 0x10
call fcn.0040a2bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x405be0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx], 0x50
jmp 0x405be2
xor ecx, ecx
mov eax, dword [edi + ebx]
mov dword [ecx], eax
mov esi, dword [edi + ebx + 4]
add ebx, 8
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], esi
test esi, esi
jle 0x405d04
lea eax, [ecx + 4]
mov dword [ebp - 0x3c], eax
push 0x30
call fcn.0040a2bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x405c6a
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx], 0xffffffff
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
jmp 0x405c6c
xor ecx, ecx
movups xmm0, xmmword [edi + ebx]
mov dword [ebp - 0x38], ecx
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edi + ebx + 0x10]
movups xmmword [ecx + 0x10], xmm0
mov eax, dword [edi + ebx + 0x20]
mov dword [ecx + 0x20], eax
mov eax, dword [edi + ebx + 0x24]
add ebx, 0x28
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x405cec
lea esi, [edi + ebx]
mov edi, dword [ebp - 0x40]
lea eax, [ecx + 0x24]
mov dword [ebp - 0x28], eax
lea ebx, [ebx + edi*8]
mov dword [ebp - 0x24], ebx
mov ebx, eax
push 8
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x405cc1
xorps xmm0, xmm0
movq qword [ecx], xmm0
jmp 0x405cc3
xor ecx, ecx
mov eax, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
add esi, 8
mov dword [ecx + 4], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], ecx
mov ecx, ebx
push eax
call fcn.00408740
sub edi, 1
jne 0x405ca8
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x38]
push eax
call fcn.00408510
sub esi, 1
mov dword [ebp - 0x30], esi
jne 0x405c02
lea eax, [ebp - 0x2c]
push eax
call fcn.004082d0
sub dword [ebp - 0x34], 1
jne 0x405bb0
jmp 0x405e3e
cmp eax, 7
jle 0x405e43
mov esi, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x30], esi
test esi, esi
jle 0x405e43
push 0x30
call fcn.0040a2bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x405d9e
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx], 0xffffffff
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
jmp 0x405da0
xor ecx, ecx
movups xmm0, xmmword [edi + ebx]
mov dword [ebp - 0x38], ecx
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edi + ebx + 0x10]
movups xmmword [ecx + 0x10], xmm0
mov eax, dword [edi + ebx + 0x20]
mov dword [ecx + 0x20], eax
mov eax, dword [edi + ebx + 0x24]
add ebx, 0x28
mov dword [ebp - 0x40], eax
test eax, eax
jle 0x405e24
lea esi, [edi + ebx]
mov edi, dword [ebp - 0x40]
lea eax, [ecx + 0x24]
mov dword [ebp - 0x28], eax
lea ebx, [ebx + edi*8]
mov dword [ebp - 0x24], ebx
mov ebx, eax
nop dword [eax]
push 8
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x405df9
xorps xmm0, xmm0
movq qword [ecx], xmm0
jmp 0x405dfb
xor ecx, ecx
mov eax, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
add esi, 8
mov dword [ecx + 4], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], ecx
mov ecx, ebx
push eax
call fcn.00408740
sub edi, 1
jne 0x405de0
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp - 0x30]
lea eax, [ebp - 0x38]
mov ecx, 0x5c9e40
push eax
call fcn.00408510
sub esi, 1
mov dword [ebp - 0x30], esi
jne 0x405d36
mov eax, dword [0x5c9ce8]
cmp eax, 8
jle 0x405e5e
mov ecx, dword [edi + ebx]
mov dword [0x5c9dc6], ecx
mov ecx, dword [edi + ebx + 4]
add ebx, 8
mov dword [0x5c9b7d], ecx
cmp eax, 0xa
jle 0x405e6f
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [0x5c9dca], ecx
cmp eax, 0xb
jle 0x405e8a
mov ecx, dword [edi + ebx]
mov dword [0x5c9dce], ecx
mov ecx, dword [edi + ebx + 4]
add ebx, 8
mov dword [0x5c9dd2], ecx
cmp eax, 0xc
jle 0x405ea5
mov ecx, dword [edi + ebx]
mov dword [0x5c9dd6], ecx
mov ecx, dword [edi + ebx + 4]
add ebx, 8
mov dword [0x5c9dda], ecx
cmp eax, 0xd
jle 0x4060fd
movq xmm0, qword [edi + ebx]
movq qword [0x5c9dde], xmm0
mov ecx, dword [edi + ebx + 8]
mov dword [0x5c9de6], ecx
mov cl, byte [edi + ebx + 0xc]
mov byte [0x5c9dea], cl
mov esi, dword [edi + ebx + 0xd]
add ebx, 0x11
mov dword [ebp - 0x34], esi
test esi, esi
jle 0x4060fd
push 0x18
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x405f13
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
jmp 0x405f15
xor ecx, ecx
mov edx, dword [edi + ebx]
movq xmm0, qword [edi + ebx + 4]
movq qword [ecx], xmm0
mov eax, dword [edi + ebx + 0xc]
add ebx, 0x10
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x20], edx
mov dword [ecx + 8], eax
test edx, edx
jle 0x4060de
lea eax, [ecx + 0xc]
mov dword [ebp - 0x3c], eax
push 0x91
call fcn.0040a2bb
mov esi, eax
mov dword [ebp - 0x2c], eax
add esp, 4
mov dword [ebp - 0x40], esi
test esi, esi
je 0x405f99
push 0x80
lea eax, [esi + 4]
mov dword [esi + 0x84], 0
push 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
push eax
mov dword [esi], 0
call fcn.00545a70
add esp, 0xc
mov byte [esi + 0x90], 0
jmp 0x405f9e
xor esi, esi
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + ebx]
mov ecx, 0x20
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + ebx + 4]
add ebx, 8
mov dword [ebp - 0x38], esi
mov dword [esi], eax
lea esi, [edi + ebx]
sub ebx, 0xffffff80
cmp dword [ebp - 0x24], 0
lea edi, [edx + 4]
rep movsd dword es:[edi], dword [esi]
jle 0x4060a6
mov esi, dword [ebp - 0x48]
lea eax, [edx + 0x84]
mov dword [ebp - 0x28], eax
nop dword [eax]
push 0x2a
call fcn.0040a2bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x406042
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x25], 0
mov byte [ecx + 0x24], 0
mov byte [ecx + 0x29], 0
jmp 0x406044
xor ecx, ecx
movups xmm0, xmmword [esi + ebx]
cmp dword [0x5c9ce8], 4
mov dword [ebp - 0x40], ecx
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi + ebx + 0x10]
movups xmmword [ecx + 0x10], xmm0
movq xmm0, qword [esi + ebx + 0x20]
movq qword [ecx + 0x20], xmm0
jge 0x40607d
mov al, byte [esi + ebx + 0x28]
mov edi, 0x29
mov byte [ecx + 0x28], al
mov byte [ecx + 0x29], 0
jmp 0x40608b
mov ax, word [esi + ebx + 0x28]
mov edi, 0x2a
mov word [ecx + 0x28], ax
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x40]
push eax
call fcn.00408510
add ebx, edi
sub dword [ebp - 0x24], 1
jne 0x405fe0
mov edx, dword [ebp - 0x2c]
cmp dword [0x5c9ce8], 0x11
mov edi, dword [ebp - 0x48]
jl 0x4060be
mov al, byte [edi + ebx]
inc ebx
mov byte [edx + 0x90], al
jmp 0x4060c5
mov byte [edx + 0x90], 0
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x38]
push eax
call fcn.00408510
sub dword [ebp - 0x20], 1
jne 0x405f40
mov esi, dword [ebp - 0x34]
lea eax, [ebp - 0x30]
mov ecx, 0x5c9deb
push eax
call fcn.00408510
sub esi, 1
mov dword [ebp - 0x34], esi
jne 0x405ee1
mov eax, dword [0x5c9ce8]
cmp eax, 0xe
jle 0x40619f
mov ecx, dword [edi + ebx]
add ebx, 4
mov dword [ebp - 0x40], ecx
test ecx, ecx
jle 0x40619f
lea esi, [edi + ebx]
mov edi, ecx
lea ebx, [ebx + edi*8]
nop
push 8
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x406139
xorps xmm0, xmm0
movq qword [ecx], xmm0
jmp 0x40613b
xor ecx, ecx
mov eax, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
add esi, 8
mov dword [ecx + 4], eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], ecx
mov ecx, 0x5c9e34
push eax
call fcn.00408510
push 8
call fcn.0040a2bb
mov edx, eax
add esp, 4
test edx, edx
je 0x406172
xorps xmm0, xmm0
movq qword [edx], xmm0
jmp 0x406174
xor edx, edx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x20], edx
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, 0x5c9e10
mov dword [edx + 4], eax
lea eax, [ebp - 0x20]
push eax
call fcn.00408510
sub edi, 1
jne 0x406120
mov eax, dword [0x5c9ce8]
mov edi, dword [ebp - 0x48]
cmp eax, 0x12
jl 0x4061b0
mov cl, byte [edi + ebx]
inc ebx
mov byte [0x5c9df7], cl
jmp 0x4061b7
mov byte [0x5c9df7], 0
cmp eax, 0x13
jl 0x4061d7
movups xmm0, xmmword [edi + ebx]
movups xmmword [0x5c9df8], xmm0
movq xmm0, qword [edi + ebx + 0x10]
movq qword [0x5c9e08], xmm0
jmp 0x4061f5
xorps xmm0, xmm0
mov dword [0x5c9e08], 0
movups xmmword [0x5c9df8], xmm0
mov dword [0x5c9e0c], 0
cmp eax, 0xf
jg 0x4063b8
xor ebx, ebx
mov dword [ebp - 0x24], ebx
cmp dword [0x5c9d42], ebx
jle 0x4063b8
nop
push 0x10
call fcn.0040a2bb
add esp, 4
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], eax
test eax, eax
je 0x406241
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax], 0x50
jmp 0x406246
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [eax], 0x50
xor edx, edx
mov ecx, dword [0x5c9e40]
mov dword [ebp - 0x38], eax
mov eax, dword [0x5c9e44]
sub eax, ecx
mov dword [ebp - 0x3c], edx
sar eax, 2
test eax, eax
je 0x40639f
cmp eax, edx
jbe 0x406516
mov ebx, dword [ecx + edx*4]
push 0x30
call fcn.0040a2bb
mov esi, eax
add esp, 4
mov dword [ebp - 0x40], esi
test esi, esi
je 0x4062df
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
jmp 0x4062e1
xor esi, esi
mov eax, dword [ebx + 0x28]
xor ecx, ecx
sub eax, dword [ebx + 0x24]
sar eax, 2
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x30], ecx
test eax, eax
je 0x40635a
mov eax, dword [ebx + 0x28]
mov edx, dword [ebx + 0x24]
sub eax, edx
sar eax, 2
cmp eax, ecx
jbe 0x406516
mov eax, dword [edx + ecx*4]
push 8
mov dword [ebp - 0x40], eax
call fcn.0040a2bb
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x406328
xorps xmm0, xmm0
movq qword [ecx], xmm0
jmp 0x40632a
xor ecx, ecx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x20], ecx
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [esi + 0x24]
call fcn.00408740
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebp - 0x30]
sub eax, dword [ebx + 0x24]
inc ecx
sar eax, 2
mov dword [ebp - 0x30], ecx
cmp ecx, eax
jb 0x4062f6
movups xmm0, xmmword [ebx]
mov ecx, dword [ebp - 0x34]
movups xmmword [esi], xmm0
movups xmm0, xmmword [ebx + 0x10]
lea ecx, [ecx + 4]
movups xmmword [esi + 0x10], xmm0
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x20], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00408510
mov eax, dword [0x5c9e44]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [0x5c9e40]
inc edx
sub eax, ecx
mov dword [ebp - 0x3c], edx
sar eax, 2
cmp eax, edx
ja 0x406274
mov ebx, dword [ebp - 0x24]
lea eax, [ebp - 0x38]
push eax
call fcn.004082d0
inc ebx
mov dword [ebp - 0x24], ebx
cmp ebx, dword [0x5c9d42]
jl 0x406210
mov ecx, dword [0x5c9e44]
mov eax, ecx
mov edx, dword [0x5c9e40]
sub eax, edx
sar eax, 2
test eax, eax
je 0x4064f0
mov esi, dword [edx]
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
sar eax, 2
test eax, eax
je 0x406431
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x406516
push 8
push dword [ecx]
call fcn.00542b96
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
lea edx, [eax + 4]
sub ecx, edx
push ecx
push edx
push eax
call fcn.00544d00
add dword [esi + 0x28], 0xfffffffc
add esp, 0x14
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
sar eax, 2
test eax, eax
jne 0x4063e2
mov ecx, dword [0x5c9e44]
mov edx, dword [0x5c9e40]
test esi, esi
je 0x4064bc
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x4064a5
mov eax, dword [esi + 0x2c]
sub eax, ecx
sar eax, 2
cmp eax, 0x3fffffff
ja 0x406520
shl eax, 2
cmp eax, 0x1000
jb 0x406487
test cl, 0x1f
jne 0x406520
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x406520
sub ecx, eax
cmp ecx, 4
jb 0x406520
cmp ecx, 0x23
ja 0x406520
mov ecx, eax
push ecx
call fcn.0040a2fb
mov dword [esi + 0x24], 0
add esp, 4
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
push 0x30
push esi
call fcn.00542b96
mov ecx, dword [0x5c9e44]
add esp, 8
mov edx, dword [0x5c9e40]
lea eax, [edx + 4]
sub ecx, eax
push ecx
push eax
push edx
call fcn.00544d00
mov ecx, dword [0x5c9e44]
add esp, 0xc
mov edx, dword [0x5c9e40]
sub ecx, 4
mov eax, ecx
mov dword [0x5c9e44], ecx
sub eax, edx
sar eax, 2
test eax, eax
jne 0x4063d3
push edi
call fcn.0040a2fb
mov ecx, dword [ebp - 0x50]
add esp, 4
push 0
call fcn.0042158b
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop ebx
xor ecx, ebp
pop esi
call fcn.005428fa
mov esp, ebp
pop ebp
ret
push str.invalid_vector_T__subscript
call fcn.00543f3c
call fcn.00548511
int3