Function at 0x423c00
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x2d58
call fcn.0040f658
mov eax, dword [ebp + 0x14]
sub eax, dword [ebp + 0x10]
add eax, eax
add eax, 2
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov esi, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
lea eax, [esp + 0x1e50]
push 0xf00
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea eax, [esp + 0xf50]
push 0xf00
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov dword [esp + 0x24], esi
test esi, esi
je 0x424373
mov edi, dword [ebp + 8]
lea ebx, [esp + 0x50]
push 0xf00
push 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea esi, [esp + 8]
push esi
call fcn.00422150
add esp, 4
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
call fcn.004226d0
add esp, 0x14
mov ecx, esi
mov edx, ebx
call 0x424380
mov eax, dword [edi]
cmp dword [eax + 8], 0
jle 0x424347
movsd xmm0, qword [str.9Y__F]
movsd qword [esp + 0x30], xmm0
xorpd xmm0, xmm0
mov ebx, 2
mov esi, 1
xor ecx, ecx
mov dword [esp + 0x28], 0xffffffff
jmp 0x423d5b
mov dword [esp + 0x450], 1
lea eax, [esp + 0x550]
push eax
push 0x120
lea eax, [esp + 0x58]
push eax
call fcn.00422c00
add esp, 0xc
lea eax, [esp + 0xe50]
push eax
push 0x20
lea eax, [esp + 0x4d8]
push eax
call fcn.00422c00
add esp, 0xc
mov ecx, dword [esp + 4]
mov dword [esp + 0x28], ecx
movsd xmm0, qword [esp + 0x18]
add ecx, 1
mov eax, dword [edi]
cmp ecx, dword [eax + 8]
jge 0x424341
mov dword [esp + 4], ecx
movsd qword [esp + 0x40], xmm0
lea edi, [esp + 8]
push edi
call fcn.00422170
add esp, 4
push edi
call fcn.00422150
add esp, 4
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
lea eax, [esp + 0x54]
push eax
push 0x424ca0
push dword [esp + 0x30]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x40]
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.00424420
add esp, 0x20
push 2
push dword [esp + 0x14]
push 0
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.0040c800
add esp, 0x14
fstp qword [esp + 0x48]
movsd xmm0, qword [esp + 0x48]
mov eax, dword [edi]
cmp dword [eax + 4], 0
movsd qword [esp + 0x18], xmm0
jne 0x423dec
movsd xmm1, qword [esp + 0x30]
ucomisd xmm1, xmm0
jbe 0x423e1d
cmp dword [eax], 0
je 0x423e1d
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
cvttsd2si ecx, qword [esp + 0x18]
sub esp, 0x10
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.00424d30
movsd xmm0, qword [esp + 0x28]
add esp, 0x10
movsd xmm1, qword [esp + 0x30]
ucomisd xmm1, xmm0
jbe 0x423eeb
push dword [ebp + 0x18]
lea eax, [esp + 0xc]
push eax
call fcn.00422190
add esp, 8
push 0x480
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x1e58]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x4d0]
movups xmm0, xmmword [ecx]
movupd xmm1, xmmword [ecx + 0x10]
lea eax, [esp + 0x22d0]
movups xmmword [eax], xmm0
movupd xmmword [eax + 0x10], xmm1
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [eax + 0x40], xmm0
movups xmm0, xmmword [ecx + 0x50]
movups xmmword [eax + 0x50], xmm0
movups xmm0, xmmword [ecx + 0x60]
movups xmmword [eax + 0x60], xmm0
movups xmm0, xmmword [ecx + 0x70]
movups xmmword [eax + 0x70], xmm0
push 0x900
lea eax, [esp + 0x554]
push eax
lea eax, [esp + 0x2358]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
push 0x100
lea eax, [esp + 0xe54]
push eax
lea eax, [esp + 0x2c58]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x18]
movsd qword [esp + 0x30], xmm0
push 0x480
lea edi, [esp + 0x54]
push edi
lea eax, [esp + 0xf58]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x4d0]
movups xmm0, xmmword [eax]
movupd xmm1, xmmword [eax + 0x10]
lea ecx, [esp + 0x13d0]
movups xmmword [ecx], xmm0
movupd xmmword [ecx + 0x10], xmm1
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ecx + 0x40], xmm0
movups xmm0, xmmword [eax + 0x50]
movups xmmword [ecx + 0x50], xmm0
movups xmm0, xmmword [eax + 0x60]
movups xmmword [ecx + 0x60], xmm0
movupd xmm0, xmmword [eax + 0x70]
movupd xmmword [ecx + 0x70], xmm0
push 0x900
lea eax, [esp + 0x554]
push eax
lea eax, [esp + 0x1458]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
push 0x100
lea eax, [esp + 0xe54]
push eax
lea eax, [esp + 0x1d58]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
push 0x500
push 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea ecx, [esp + 8]
mov edx, edi
call 0x424380
cmp dword [esp + 0x28], 0xffffffff
je 0x424167
mov eax, 1
movsd xmm2, qword [0x4b0ca8]
movsd xmm3, qword [0x4b0cb0]
movsd xmm4, qword [0x4b0cb8]
nop word cs:[eax + eax]
nop dword [eax]
movss xmm0, dword [esp + eax*4 + 0x4c]
orpd xmm0, xmm2
subsd xmm0, xmm2
movss xmm1, dword [esp + eax*4 + 0xf4c]
orpd xmm1, xmm2
subsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
movapd xmm0, xmm1
subsd xmm0, xmm4
cvttsd2si edx, xmm0
xor edx, 0x80000000
ucomisd xmm1, xmm4
cmovb edx, ecx
mov dword [esp + eax*4 + 0x4c], edx
movss xmm0, dword [esp + eax*4 + 0x50]
orpd xmm0, xmm2
subsd xmm0, xmm2
movss xmm1, dword [esp + eax*4 + 0xf50]
orpd xmm1, xmm2
subsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
movapd xmm0, xmm1
subsd xmm0, xmm4
cvttsd2si edx, xmm0
xor edx, 0x80000000
ucomisd xmm1, xmm4
cmovb edx, ecx
mov dword [esp + eax*4 + 0x50], edx
add eax, 2
cmp eax, 0x121
jne 0x423fe0
xor eax, eax
movss xmm0, dword [esp + eax*4 + 0x4d0]
orpd xmm0, xmm2
subsd xmm0, xmm2
movss xmm1, dword [esp + eax*4 + 0x13d0]
orpd xmm1, xmm2
subsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
movapd xmm0, xmm1
subsd xmm0, xmm4
cvttsd2si edx, xmm0
xor edx, 0x80000000
ucomisd xmm1, xmm4
cmovb edx, ecx
mov dword [esp + eax*4 + 0x4d0], edx
movss xmm0, dword [esp + eax*4 + 0x4d4]
orpd xmm0, xmm2
subsd xmm0, xmm2
movss xmm1, dword [esp + eax*4 + 0x13d4]
orpd xmm1, xmm2
subsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
movapd xmm0, xmm1
subsd xmm0, xmm4
cvttsd2si edx, xmm0
xor edx, 0x80000000
ucomisd xmm1, xmm4
cmovb edx, ecx
mov dword [esp + eax*4 + 0x4d4], edx
add eax, 2
cmp eax, 0x20
jne 0x424080
mov dword [esp + 0x450], 1
lea eax, [esp + 0x550]
push eax
push 0x120
lea eax, [esp + 0x58]
push eax
call fcn.00422c00
add esp, 0xc
lea eax, [esp + 0xe50]
push eax
push 0x20
lea eax, [esp + 0x4d8]
push eax
call fcn.00422c00
add esp, 0xc
mov ecx, dword [esp + 4]
cmp ecx, 6
movsd xmm0, qword [esp + 0x18]
mov edi, dword [ebp + 8]
jb 0x423d4d
ucomisd xmm0, qword [esp + 0x40]
jne 0x423d4d
jp 0x423d4d
push 0x480
lea eax, [esp + 0x1e54]
push eax
lea eax, [esp + 0x58]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x22d0]
movups xmm0, xmmword [eax]
movupd xmm1, xmmword [eax + 0x10]
lea ecx, [esp + 0x4d0]
movups xmmword [ecx], xmm0
movupd xmmword [ecx + 0x10], xmm1
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ecx + 0x40], xmm0
movups xmm0, xmmword [eax + 0x50]
movups xmmword [ecx + 0x50], xmm0
movups xmm0, xmmword [eax + 0x60]
movups xmmword [ecx + 0x60], xmm0
movupd xmm0, xmmword [eax + 0x70]
movupd xmmword [ecx + 0x70], xmm0
push 0x900
lea eax, [esp + 0x2354]
push eax
lea eax, [esp + 0x558]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
push 0x100
lea eax, [esp + 0x2c54]
push eax
lea eax, [esp + 0xe58]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
xor edi, edi
jmp 0x42424b
add edi, 1
cmp edi, 0x120
je 0x4242c0
movzx eax, bx
imul eax, eax, 0x9069
shr ebx, 0x10
add ebx, eax
movzx eax, si
imul eax, eax, 0x4650
shr esi, 0x10
add esi, eax
mov eax, ebx
shl eax, 0x10
add eax, esi
shr eax, 4
imul eax, eax, 0xaaaaaaab
cmp eax, 0x55555555
ja 0x424240
movzx eax, bx
imul eax, eax, 0x9069
shr ebx, 0x10
add ebx, eax
movzx eax, si
imul eax, eax, 0x4650
shr esi, 0x10
add esi, eax
mov ecx, ebx
shl ecx, 0x10
add ecx, esi
mov eax, ecx
mov edx, 0x38e38e39
mul edx
shr edx, 1
and edx, 0xffffffe0
lea eax, [edx + edx*8]
sub ecx, eax
mov eax, dword [esp + ecx*4 + 0x50]
mov dword [esp + edi*4 + 0x50], eax
jmp 0x424240
xor eax, eax
mov edi, dword [ebp + 8]
jmp 0x4242dc
add eax, 1
cmp eax, 0x20
je 0x423d00
movzx ecx, bx
imul ecx, ecx, 0x9069
shr ebx, 0x10
add ebx, ecx
movzx ecx, si
imul ecx, ecx, 0x4650
shr esi, 0x10
add esi, ecx
mov ecx, ebx
shl ecx, 0x10
add ecx, esi
shr ecx, 4
imul ecx, ecx, 0xaaaaaaab
cmp ecx, 0x55555555
ja 0x4242d0
movzx ecx, bx
imul ecx, ecx, 0x9069
shr ebx, 0x10
add ebx, ecx
movzx ecx, si
imul ecx, ecx, 0x4650
shr esi, 0x10
add esi, ecx
mov ecx, esi
and ecx, 0x1f
mov ecx, dword [esp + ecx*4 + 0x4d0]
mov dword [esp + eax*4 + 0x4d0], ecx
jmp 0x4242d0
mov esi, dword [esp + 0x2c]
jmp 0x424349
xor esi, esi
push dword [esp + 0x24]
call fcn.0040af20
add esp, 4
push esi
call fcn.0040af20
add esp, 4
lea eax, [esp + 8]
push eax
call fcn.00422170
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0xffffffffffffffff
call sub.api_ms_win_crt_runtime_l1_1_0.dll_exit
nop word [eax + eax]
push ebx
push edi
push esi
mov esi, edx
cmp dword [ecx + 8], 0
je 0x4243e5
mov edi, ecx
xor ebx, ebx
jmp 0x4243d0
push eax
call fcn.0040bcf0
add esp, 4
add dword [esi + eax*4], 1
mov eax, dword [edi + 4]
movzx eax, word [eax + ebx*2]
push eax
call fcn.0040bca0
add esp, 4
lea eax, [esi + eax*4]
add eax, 0x480
add dword [eax], 1
add ebx, 1
cmp ebx, dword [edi + 8]
jae 0x4243e5
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp word [ecx + ebx*2], 0
movzx eax, word [eax + ebx*2]
jne 0x4243a0
lea eax, [esi + eax*4]
jmp 0x4243c5
mov dword [esi + 0x400], 1
lea eax, [esi + 0x500]
push eax
push 0x120
push esi
call fcn.00422c00
add esp, 0xc
lea eax, [esi + 0x480]
add esi, 0xe00
push esi
push 0x20
push eax
call fcn.00422c00
add esp, 0xc
pop esi
pop edi
pop ebx
ret