Function at 0x42ef6b
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x12cc
call fcn.00485cf0
and dword [esp + 0x10], 0
push ebx
mov ebx, dword [esp + 0x12d8]
push ebp
push esi
mov ebp, ecx
xor esi, esi
push edi
mov dword [esp + 0x28], ebp
mov ecx, ebp
call fcn.0045717b
mov edx, eax
test esi, esi
push 0
mov edi, 0x200
mov eax, dword [edx]
mov ecx, dword [eax + 0x5c]
lea eax, [esp + 0x24]
push eax
push 0
push 0x15
mov eax, 0x600
cmovne eax, edi
push eax
push esi
push ebx
push ebx
push edx
call ecx
test eax, eax
je 0x42efcb
cmp esi, 1
je 0x42effb
inc esi
cmp esi, 2
jl 0x42ef8d
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x38]
push 0x2000
push 0
push edx
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x4c]
test eax, eax
je 0x42f048
push 0x1000
lea eax, [esp + 0x2e0]
push eax
push 0x1e9
jmp 0x42f00d
push 0x1000
lea eax, [esp + 0x2e0]
push eax
push 0x1e8
call fcn.0046f468
push 0x40
lea eax, [esp + 0x50]
push eax
push 0xe
call fcn.0046f468
add esp, 0x18
mov ecx, ebp
mov esi, eax
call fcn.004571f5
push 0x50000
push esi
lea ecx, [esp + 0x2e4]
push ecx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
xor al, al
jmp 0x42f3a6
mov ecx, dword [esp + 0x38]
mov eax, ebx
shl eax, 2
cmp ecx, eax
jge 0x42f069
push 0x1000
lea eax, [esp + 0x2e0]
push eax
push 0x1ea
jmp 0x42f00d
mov edi, dword [esp + 0x12e8]
mov eax, 0x100
mov esi, dword [esp + 0x3c]
shr ecx, 2
cmp edi, 1
mov dword [esp + 0x1c], ecx
lea edx, [eax - 0x28]
cmovg eax, edx
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x42f186
mov edi, dword [esp + 0x14]
mov ebp, esi
shr eax, 1
mov dword [esp + 0x10], eax
mov eax, ecx
shl eax, 2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ebx
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call fcn.0049e53b
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x30]
push eax
call fcn.0049e55c
and dword [esp + 0x28], 0
pop ecx
call fcn.0049e53b
cdq
idiv edi
mov esi, edx
add esi, dword [esp + 0x10]
shl esi, 0x18
call fcn.0049e53b
cdq
idiv edi
mov edi, edx
add edi, dword [esp + 0x10]
shl edi, 8
or edi, esi
call fcn.0049e53b
cdq
idiv dword [esp + 0x14]
mov esi, edx
add esi, dword [esp + 0x10]
shl esi, 0x10
or esi, edi
call fcn.0049e53b
mov edi, dword [esp + 0x14]
cdq
idiv edi
mov eax, dword [esp + 0x24]
add edx, dword [esp + 0x10]
or edx, esi
mov dword [ebp + eax*4], edx
inc eax
mov dword [esp + 0x24], eax
cmp eax, ebx
jl 0x42f0d2
mov edi, ebx
call fcn.0049e53b
xor eax, dword [esp + 0x30]
xor edx, edx
div ebx
mov esi, edx
call fcn.0049e53b
xor eax, dword [esp + 0x34]
cdq
idiv ebx
mov eax, dword [ebp + esi*4]
mov ecx, dword [ebp + edx*4]
mov dword [ebp + edx*4], eax
mov dword [ebp + esi*4], ecx
sub edi, 1
jne 0x42f130
add ebp, dword [esp + 0x2c]
sub dword [esp + 0x18], 1
mov edi, dword [esp + 0x14]
jne 0x42f0ae
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x12e8]
mov ecx, dword [esp + 0x1c]
cmp edi, 1
jle 0x42f304
and dword [esp + 0x18], 0
test ebx, ebx
jle 0x42f304
and dword [esp + 0x10], 0
mov eax, ecx
imul eax, edi
mov dword [esp + 0x2c], eax
xor ebp, ebp
mov eax, ebp
cdq
idiv edi
test edx, edx
je 0x42f21b
movd xmm1, edx
mov ecx, ebp
sub ecx, edx
movd xmm0, edi
add ecx, ebx
cvtdq2ps xmm1, xmm1
push ecx
lea eax, [ecx + edi*2]
cdq
idiv ebx
cvtdq2ps xmm0, xmm0
add edx, dword [esp + 0x14]
lea eax, [ecx + edi]
divss xmm1, xmm0
movss dword [esp], xmm1
push dword [esi + edx*4]
cdq
idiv ebx
mov eax, ecx
sub ecx, edi
add edx, dword [esp + 0x18]
push dword [esi + edx*4]
cdq
idiv ebx
mov eax, ecx
add edx, dword [esp + 0x1c]
push dword [esi + edx*4]
cdq
idiv ebx
add edx, dword [esp + 0x20]
push dword [esi + edx*4]
call fcn.00453b47
mov edx, dword [esp + 0x24]
add esp, 0x14
lea ecx, [edx + ebp]
mov dword [esi + ecx*4], eax
jmp 0x42f21f
mov edx, dword [esp + 0x10]
inc ebp
cmp ebp, ebx
jl 0x42f1ac
mov eax, dword [esp + 0x18]
add edx, dword [esp + 0x2c]
add eax, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x42f1aa
and dword [esp + 0x10], 0
mov edx, esi
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
xor ecx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
mov eax, ecx
cdq
idiv edi
test edx, edx
je 0x42f2ce
sub ecx, edx
movd xmm1, edx
add ecx, ebx
movd xmm0, edi
cvtdq2ps xmm1, xmm1
push ecx
lea eax, [ecx + edi*2]
cdq
idiv ebx
cvtdq2ps xmm0, xmm0
lea eax, [ecx + edi]
imul edx, ebp
divss xmm1, xmm0
add edx, dword [esp + 0x14]
movss dword [esp], xmm1
push dword [esi + edx*4]
cdq
idiv ebx
mov eax, ecx
sub ecx, edi
imul edx, ebp
add edx, dword [esp + 0x18]
push dword [esi + edx*4]
cdq
idiv ebx
mov eax, ecx
imul edx, ebp
add edx, dword [esp + 0x1c]
push dword [esi + edx*4]
cdq
idiv ebx
imul edx, ebp
add edx, dword [esp + 0x20]
push dword [esi + edx*4]
call fcn.00453b47
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov dword [ecx], eax
mov ecx, dword [esp + 0x1c]
mov eax, ebp
inc ecx
shl eax, 2
add dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
cmp ecx, ebx
jl 0x42f257
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
inc eax
add edx, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
cmp eax, ebx
jl 0x42f24d
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
push dword [esp + 0x12e0]
lea eax, [esp + 0xc4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, dword [esp + 0x20]
lea ecx, [ebp + 0x6c284]
and dword [esp + 0x2d8], 0
mov dword [esp + 0x2c0], eax
mov eax, dword [ebp + 0x6c4e8]
mov dword [esp + 0x2d4], eax
mov eax, dword [ebp + 0x6c288]
mov dword [esp + 0x2c4], ebx
mov dword [esp + 0x2c8], ebx
mov dword [esp + 0x2cc], 1
mov byte [esp + 0x2d0], 0
cmp eax, dword [ebp + 0x6c28c]
je 0x42f396
mov ecx, 0x87
lea esi, [esp + 0xc0]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add dword [ebp + 0x6c288], 0x21c
jmp 0x42f3a4
lea edx, [esp + 0xc0]
push edx
push eax
call fcn.0042a4a4
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12cc
ret 0xc