Function at 0x42ca99
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
mov eax, dword [0x6a9a60]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x98]
push ebx
push esi
push edi
mov dword [ebp - 0xc0], eax
call fcn.00427d64
push 8
pop esi
cmp dword [ebp - 0x84], esi
lea eax, [ebp - 0x98]
lea ecx, [ebp - 0x80]
cmovae eax, dword [ebp - 0x98]
push eax
call fcn.004076e0
xor eax, eax
lea edi, [ebp - 0xb8]
mov ecx, esi
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0042d3b0
cmp dword [ebp - 0x6c], esi
lea ebx, [ebp - 0x80]
pop ecx
cmovae ebx, dword [ebp - 0x80]
lea ecx, [ebp - 0x80]
jb 0x42cb11
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x42cb37
movzx eax, word [ecx]
test ax, ax
je 0x42cb37
mov edx, eax
lea eax, [edx - 0x41]
cmp ax, 0x19
ja 0x42cb2a
lea eax, [edx + 0x20]
mov word [ecx], ax
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x42cb1b
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov dword [ebp - 8], edx
test edx, edx
je 0x42cb59
mov eax, ecx
and eax, 3
mov ax, word [ebp + eax*2 - 0xb8]
xor word [ebx + ecx*2], ax
inc ecx
cmp ecx, edx
jb 0x42cb43
xor eax, eax
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea edi, [edx + edx]
cmp edi, 0x10
jae 0x42cb7a
push edi
lea eax, [ebp - 0x1c]
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x42cbc0
mov eax, edi
shr eax, 3
xor esi, esi
mov dword [ebp - 0xbc], eax
mov ecx, esi
imul ecx, eax
lea edx, [ecx + ebx]
cmp esi, 7
je 0x42cbb0
push eax
push edx
call fcn.0042c736
mov word [ebp + esi*2 - 0x1c], ax
inc esi
pop ecx
pop ecx
cmp esi, 8
jae 0x42cbc0
mov eax, dword [ebp - 0xbc]
jmp 0x42cb87
sub edi, ecx
push edi
push edx
call fcn.0042c736
pop ecx
pop ecx
mov word [ebp + esi*2 - 0x1c], ax
push 0x4a
lea eax, [ebp - 0x68]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
movzx eax, byte [ebp - 0xd]
push eax
movzx eax, byte [ebp - 0xe]
push eax
movzx eax, byte [ebp - 0xf]
push eax
movzx eax, byte [ebp - 0x10]
push eax
movzx eax, byte [ebp - 0x11]
push eax
movzx eax, byte [ebp - 0x12]
push eax
movzx eax, byte [ebp - 0x13]
push eax
movzx eax, byte [ebp - 0x14]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x68]
push str._08x__04x__04x__02x_02x__02x_02x_02x_02x_02x_02x
push 0x25
push eax
call fcn.0042d8f7
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
lea eax, [ebp - 0x68]
add esp, 0x44
push eax
call esi
mov edi, dword [ebp - 0xc0]
pop ecx
push eax
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
call fcn.004078d0
cmp dword [ebp - 8], 3
jb 0x42cc84
movzx eax, word [ebx]
xor edx, edx
push 0x1a
pop ecx
div ecx
movzx eax, word [ebx + 2]
xorps xmm0, xmm0
add edx, 0x61
movlpd qword [ebp - 0xc], xmm0
mov word [ebp - 0xc], dx
xor edx, edx
div ecx
movzx eax, word [ebx + 4]
add edx, 0x61
mov word [ebp - 0xa], dx
xor edx, edx
div ecx
lea eax, [ebp - 0xc]
add edx, 0x61
push eax
mov word [ebp - 8], dx
call esi
pop ecx
push eax
lea eax, [ebp - 0xc]
mov ecx, edi
push eax
call fcn.0040fb7a
lea ecx, [ebp - 0x80]
call fcn.00407870
lea ecx, [ebp - 0x98]
call fcn.00407870
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.004b3004
leave
ret