Function at 0x43f760
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push esi
xchg ecx, ecx
push edi
push dword [ebp + 0xc]
mov esi, ecx
lea ecx, [ebp - 0x1c]
xchg esi, esi
mov dword [ebp - 0xc], esi
call fcn.004863a0
push dword [ebp + 8]
mov dword [esp - 0x10], 0x74e0c628
lea ecx, [ebp - 0x1c]
call fcn.00486850
test al, al
je 0x43fa4e
mov dword [esp - 0x38], esp
nop
sub esp, 4
mov dword [esp], 0x16ffb628
mov ebp, ebp
add dword [esp], 0x1adeefe6
add dword [esp], 0x22b55cb6
xor dword [esp], 0x6402cac3
add dword [esp], 0x3f6e6ec2
mov dword [esp - 0x24], ebx
sub dword [esp], 0x6607e703
sub dword [esp], 0x9fd4fbe
lea eax, [ebp - 0x14]
xchg ecx, ecx
mov dword [ebp - 0x14], 0x750ed42b
xor dword [ebp - 0x14], 0x73103dd7
add dword [ebp - 0x14], 0x72832faa
mov dword [esp - 0x14], ebp
sub dword [ebp - 0x14], 0x534618e5
add dword [ebp - 0x14], 0x17bfe7c6
sub dword [ebp - 0x14], 0x2dcc2b7a
mov dword [esp - 0x10], 0x885cab2
sub dword [ebp - 0x14], 0xf4fbd0d
push eax
lea ecx, [ebp - 0x1c]
mov dword [esp - 0x28], 0x1b73c3b3
mov dword [ebp - 0x10], 0x70fa5ba
add dword [ebp - 0x10], 0x4d028e84
add dword [ebp - 0x10], 0x20dec75a
mov esi, esi
xor dword [ebp - 0x10], 0x18b43bff
xor dword [ebp - 0x10], 0x6c44c067
call fcn.00486c10
test al, al
mov dword [esp - 0x24], ecx
je 0x43fa4e
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x1c]
xchg esi, esi
xor eax, 0x5d3156cb
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x10]
xor eax, 0x5d3156cb
xchg edx, edx
mov dword [esi + 0x2c], eax
lea eax, [ebp - 4]
nop
mov dword [esp - 0x28], 0x396cde71
mov dword [esp - 4], 0x36ab1d66
xor dword [esp - 4], 0x18d47517
add dword [esp - 4], 0x3018991a
xchg esi, esi
sub dword [esp - 4], 0x578f72eb
sub dword [esp - 4], 0x7088e9c
sub esp, 4
mov dword [esp - 0x38], esi
push eax
call fcn.00486c10
test al, al
je 0x43fa4e
mov dword [esp - 0x18], edx
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x1c]
xor eax, 0x5d3156cb
mov edx, edx
mov dword [esi + 0x34], eax
lea eax, [esi + 0x3c]
nop
mov dword [esp - 0x20], 0x44be79c6
mov dword [esp - 4], 0x767de087
sub dword [esp - 4], 0x7cd5698
sub dword [esp - 4], 0x5521333d
mov dword [esp - 0x18], edi
sub dword [esp - 4], 0x957ed9e
xor dword [esp - 4], 0x10376910
sub esp, 4
push eax
mov dword [esp - 0xc], 0x1c4c8c2a
call fcn.00486c10
test al, al
je 0x43fa4e
mov eax, dword [esi + 0x20]
xchg esp, esp
mov edi, 0x76739d0a
xor edi, 0x167b409b
xor edi, 0x7ed6c596
add edi, 0x60ee7d6e
mov dword [esp - 0x44], edx
sub edi, 0x7fcb9576
and eax, 0x2000
mov dword [ebp - 8], eax
pushf
mov dword [esp - 0x14], 0x7ed499d4
mov eax, 0x670cb21
add eax, 0x735ef8a5
xor eax, 0x363a4242
mov ebp, ebp
sub eax, 0x2e480ebb
xor eax, 0x6700d91b
xor eax, 0x46adab2d
popf
xchg esp, esp
cmovne edi, eax
mov eax, edi
shl eax, 4
mov esp, esp
cmp dword [esi + 0x38], 0
mov dword [ebp + 0xc], eax
jne 0x43f9e3
mov edx, edx
nop
mov dword [esp - 4], 0x67803234
xor dword [esp - 4], 0xd38c54b
xor dword [esp - 4], 0x798b76a2
mov ebx, ebx
xor dword [esp - 4], 0x798a79ea
sub dword [esp - 4], 0x6ab9f827
sub esp, 4
mov dword [esp - 0x2c], ecx
push eax
call fcn.00490cd0
mov dword [esi + 0x38], eax
add esp, 8
mov dword [esp - 0x1c], 0x5703d40d
mov eax, dword [ebp + 0xc]
jmp 0x43f9e6
mov dword [ebp + 0xc], eax
nop
xchg ebp, ebp
sub esp, 4
mov dword [esp], 0x7f066f26
sub dword [esp], 0x515e7a73
xor dword [esp], 0x7af71b65
mov dword [esp - 0xc], esi
sub dword [esp], 0x30643d07
sub dword [esp], 0x26ecb2bf
push eax
call fcn.00490cd0
xchg esp, esp
mov esi, eax
add esp, 8
mov dword [ebp + 8], esi
test esi, esi
xchg ecx, ecx
je 0x43fa4e
push dword [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push esi
xchg esp, esp
call fcn.00486c10
test al, al
jne 0x43fa7f
xchg esp, esp
push esi
call fcn.00490ca0
add esp, 4
mov dword [esp - 0xc], 0x849815d
lea ecx, [ebp - 0x1c]
mov byte [ebp + 0xf], 0x3b
xor byte [ebp + 0xf], 0x15
add byte [ebp + 0xf], 2
xchg ebx, ebx
xor byte [ebp + 0xf], 0x54
xor byte [ebp + 0xf], 0x64
call fcn.00486430
mov al, byte [ebp + 0xf]
mov dword [esp - 0x3c], ebp
pop edi
pop esi
mov esp, ebp
pop ebp
mov dword [esp - 0x38], edi
ret 0xc
cmp dword [ebp - 8], 0
mov esi, edi
mov dword [esp - 0x34], esi
je 0x43faec
nop
mov dword [esp - 4], 0x2a655c03
xor dword [esp - 4], 0x7610c9e6
mov ecx, ecx
sub dword [esp - 4], 0x2670f0e9
add dword [esp - 4], 0x81894e5
xor dword [esp - 4], 0x596c7e27
mov dword [esp - 0x38], 0x14dc1292
xor dword [esp - 4], 0x677147d6
sub esp, 4
lea eax, [ebp - 0x2c]
xchg ebx, ebx
push eax
lea ecx, [ebp - 0x1c]
call fcn.00486c10
xchg ebp, ebp
test al, al
je 0x43fc2e
inc esi
mov edi, edi
cmp esi, 0xffff
jb 0x43fa8b
mov edx, dword [ebp + 8]
xor ecx, ecx
mov dword [esp - 0x20], 0x2da12785
mov esi, dword [ebp - 0xc]
jmp 0x43fb05
movups xmm0, xmmword [ecx + edx]
lea ecx, [ecx + 0x10]
mov eax, dword [esi + 0x38]
mov dword [esp - 0x2c], ecx
xorps xmm0, xmmword [0x4c55d0]
movups xmmword [eax + ecx - 0x10], xmm0
sub edi, 1
jne 0x43fb05
mov dword [esp - 0xc], 0x1c71be3d
push edx
call fcn.00490ca0
mov eax, dword [ebp - 0x10]
xchg edx, edx
mov ecx, 0x22002b2c
xor ecx, 0x68a7a2f5
add ecx, 0x2c49a3c7
mov dword [esp - 0x38], ebx
sub ecx, 0xd420253
sub ecx, 0x342f98e2
xor ecx, 0x3fafa5ff
sub ecx, 0xad03790
mov dword [esp - 0x14], ebx
imul eax, dword [ebp - 0x14]
mul ecx
pushf
mov dword [esp - 0x38], esp
mov ecx, 0x58117ed9
sub ecx, 0x2ea85f16
sub ecx, 0x812181f
mov dword [esp - 0x28], ebp
add ecx, 0x113ff355
sub ecx, 0x1fc61bdf
add ecx, 0x5999bac4
add ecx, 0x93956621
mov dword [esp - 0x28], 0x522df522
popf
cmovb eax, ecx
push eax
call fcn.00490c90
mov dword [esp - 0x2c], ebp
mov esi, eax
add esp, 8
test esi, esi
je 0x43fa4e
mov dword [esp - 0xc], edi
mov ecx, dword [ebp - 0x10]
imul ecx, dword [ebp - 0x14]
shl ecx, 2
mov dword [esp - 0x34], 0x3f0f09e2
push ecx
push esi
lea ecx, [ebp - 0x1c]
call fcn.00486c10
mov dword [esp - 0x18], esi
test al, al
jne 0x43fc3f
nop
mov dword [esp - 0x44], 0x22102b70
sub esp, 4
mov dword [esp], 0x61c3404b
add dword [esp], 0x1606e596
sub dword [esp], 0x2dbd959d
xchg esi, esi
add dword [esp], 0x51c823d
sub dword [esp], 0x4f29127d
push esi
call fcn.00490c70
mov ebx, ebx
add esp, 8
jmp 0x43fa4e
mov edx, dword [ebp + 8]
push edx
mov dword [esp - 0x28], 0x17f98da6
jmp 0x43fa3e
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x1c]
mov byte [ebp + 0xf], 0x39
xor byte [ebp + 0xf], 0xd
mov ebx, ebx
add byte [ebp + 0xf], 0x45
sub byte [ebp + 0xf], 0xc
sub byte [ebp + 0xf], 0x6c
mov dword [eax], esi
mov dword [esp - 0x28], 0x5042636
call fcn.00486430
mov al, byte [ebp + 0xf]
pop edi
mov dword [esp - 0x30], 0x4daa10bd
pop esi
mov esp, ebp
pop ebp
ret 0xc