Function at 0x4239f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x28
mov eax, dword [edx + 0x14]
mov dword [esp + 0x24], ecx
mov esi, edx
xor ecx, ecx
mov dword [esp + 0x20], eax
movzx eax, byte [edx + 0x18]
mov edx, 0x2f8
mov byte [esp + 0xf], al
movzx eax, byte [0x77618d]
call fcn.00490be0
test eax, eax
je 0x423cb0
lea ecx, [esi + 0x1c]
mov dword [esp + 0x14], ecx
push 0x2f8
push 0
mov dword [esp + 0x20], eax
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esi + 0x30]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], eax
nop dword [eax]
mov ebp, 1
mov esi, 0
mov edi, 0x70656462
mov ebx, 0x70656462
mov eax, 0
lock xadd dword [0x776100], ebp
mov dword [esp], ebp
xor ebp, 0x79746573
mov edx, ebp
mov ecx, ebp
add edx, 0x6e657261
adc esi, 0xdcdecbc7
shld ecx, edi, 0x10
shld ebx, ebp, 0x10
xor ecx, edx
xor ebx, esi
add ebp, 0xc19fead0
mov edi, ecx
adc eax, 0x1671bdd1
mov esi, ebx
mov edx, ecx
add edi, 0xd7dedfc6
adc esi, 0xded7d4e2
shld edx, ebx, 0x15
shld ebx, ecx, 0x15
mov ecx, eax
xor eax, 0xe414a674
xor edx, edi
xor edi, dword [esp]
xor ebx, esi
xor esi, 0x4000000
xor ecx, 0xff
mov dword [esp + 8], edi
mov edi, ebp
xor edi, 0xf0de7325
add dword [esp + 8], edi
adc esi, eax
add ecx, edx
mov dword [esp + 4], esi
mov esi, edx
adc ebp, ebx
shrd edx, ebx, 0x10
mov dword [esp], ecx
mov ecx, 0xf2651ba4
shld eax, edi, 0xd
shld esi, ebx, 0x10
mov ebx, dword [esp + 8]
shld edi, ecx, 0xd
mov ecx, dword [esp]
xor eax, dword [esp + 4]
xor edx, ebp
xor edi, ebx
xor esi, ecx
add ecx, edi
adc ebp, eax
add dword [esp + 4], esi
mov dword [esp], ecx
mov ecx, esi
adc ebx, edx
shld ecx, edx, 0x15
shrd esi, edx, 0xb
mov dword [esp + 8], ebx
mov ebx, edi
shrd edi, eax, 0xf
shld ebx, eax, 0x11
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
xor edi, ebp
xor ebx, dword [esp]
xor esi, edx
xor ecx, eax
add eax, ebx
adc edx, edi
add ebp, ecx
mov dword [esp + 4], eax
mov eax, ecx
mov dword [esp + 8], edx
mov edx, ebx
adc dword [esp], esi
shld eax, esi, 0x10
shrd ecx, esi, 0x10
shrd ebx, edi, 0x13
shld edx, edi, 0xd
mov edi, dword [esp + 8]
mov esi, dword [esp]
xor eax, ebp
xor edx, dword [esp + 4]
xor ebx, edi
xor ecx, esi
add ebp, edx
adc esi, ebx
add edi, eax
mov dword [esp], esi
mov dword [esp + 8], edi
adc dword [esp + 4], ecx
mov edi, edx
mov esi, eax
shrd edx, ebx, 0xf
shrd eax, ecx, 0xb
shld edi, ebx, 0x11
shld esi, ecx, 0x15
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 8]
xor edx, dword [esp]
xor edi, ebp
xor eax, ebx
xor esi, ecx
add ecx, edi
adc ebx, edx
add dword [esp], esi
mov dword [esp + 4], ebx
mov ebx, edi
adc ebp, eax
shld ebx, edx, 0xd
shrd edi, edx, 0x13
xor ebx, ecx
mov ecx, eax
xor edi, dword [esp + 4]
shld ecx, esi, 0x10
shld esi, eax, 0x10
mov eax, dword [esp]
xor ecx, ebp
xor esi, eax
add eax, ebx
mov dword [esp], eax
mov edx, esi
adc ebp, edi
mov eax, ebx
shld edx, ecx, 0x15
shld ecx, esi, 0x15
mov esi, dword [esp]
shld eax, edi, 0x11
shld edi, ebx, 0x11
xor eax, ebp
xor eax, edx
xor edi, esi
xor eax, esi
xor edi, ecx
mov ecx, eax
xor edi, ebp
or ecx, edi
je 0x423a50
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esp + 0x20]
movsd qword [edx + 0x98], xmm1
movsd qword [edx + 0x90], xmm0
mov dword [edx + 0xa0], ecx
movzx ecx, byte [esp + 0xf]
mov byte [edx + 0xa4], cl
mov ecx, dword [esp + 0x18]
mov dword [edx], 0
mov dword [edx + 4], ecx
mov dword [edx + 0x40], 0
mov dword [edx + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov dword [edx + 0x88], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0x80], eax
mov dword [edx + 0x84], edi
mov eax, dword [ecx + 0x2c]
test dword [ecx + 8], 0x7fffffff
mov dword [edx + 0x8c], eax
je 0x423ca8
push dword [ecx + 0xc]
push 0
push dword [0x776180]
call dword [sym.imp.KERNEL32.dll_HeapFree]
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
ud2