Function at 0x43f950
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x850
mov dword [ebp - 0x18], ecx
lea edi, [ebp - 0x73c]
mov ecx, 0x18
mov esi, 0x6b2b0c
lea eax, [ebp - 0x79c]
mov ebx, 0xfffffac0
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x6dc]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x67c]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x61c]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x5bc]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x55c]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x4fc]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x49c]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x43c]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x3dc]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x37c]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x31c]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x2bc]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x25c]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x7fc]
mov ecx, 0x18
mov esi, 0x6b2b0c
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov ecx, 0x18
mov dword [ebp - 0x10], edx
mov esi, edx
mov eax, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x43fad2
lea edx, [ebp - 0x7c]
lea esi, [ebp + ebx - 0x25c]
mov ecx, 0x18
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x19c]
push dword [ebp - 0x10]
mov edi, eax
call fcn.0040ed00
lea esi, [ebp - 0x19c]
mov eax, edi
add esp, 4
lea edi, [ebp + ebx - 0x1fc]
mov ecx, 0x18
inc eax
add ebx, 0x60
rep movsd dword es:[edi], dword [esi]
je 0x43fafc
test al, 1
jne 0x43fa90
mov edi, eax
shr eax, 1
lea ecx, [ebp - 0x19c]
lea eax, [eax + eax*2]
shl eax, 5
lea edx, [ebp + eax - 0x7fc]
call fcn.0043f150
lea esi, [ebp - 0x19c]
mov eax, edi
jmp 0x43fabe
lea edi, [ebp - 0xdc]
mov ecx, 0x18
mov esi, 0x6b2b0c
mov edx, 0xfc
mov eax, 0x1f
lea ebx, [ebp - 0x13c]
rep movsd dword es:[edi], dword [esi]
nop
mov ecx, dword [ebp + 8]
mov edi, ebx
mov dword [ebp - 0x14], edx
mov esi, 0x6b2b0c
lea ebx, [ebp - 0x75c]
movzx eax, byte [ecx + eax]
mov ecx, edx
and cl, 4
shr eax, cl
mov ecx, 0x18
and eax, 0xf
mov dword [ebp - 0x1c], eax
mov eax, 1
rep movsd dword es:[edi], dword [esi]
lea ecx, [eax + 1]
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ecx
dec eax
and ah, 1
movzx eax, ah
push eax
call fcn.0052fee0
add esp, 4
movzx esi, al
lea ecx, [ebx - 0x40]
push esi
push ecx
lea edi, [ebp - 0x13c]
push edi
lea eax, [ebp - 0x7c]
push eax
call fcn.00538390
add esp, 0x10
lea eax, [ebx - 0x20]
push esi
push eax
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00538390
add esp, 0x10
push esi
push ebx
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00538390
add esp, 0x10
mov ecx, 0x18
lea esi, [ebp - 0x7c]
add ebx, 0x60
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x10]
cmp eax, 0x10
jne 0x43fb50
lea edx, [ebp - 0x7c]
mov ecx, 0x18
lea esi, [ebp - 0xdc]
lea eax, [ebp - 0x13c]
mov edi, edx
mov ebx, eax
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x19c]
mov ecx, esi
push eax
call fcn.0040ed00
mov eax, esi
add esp, 4
lea edi, [ebp - 0xdc]
mov ecx, 0x18
mov edx, edi
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x7c]
cmp dword [ebp - 0x14], 0
je 0x43fc5c
mov ecx, esi
mov edi, eax
call fcn.0043f150
mov ecx, edi
mov edx, esi
call fcn.0043f150
lea esi, [ebp - 0x85c]
mov edx, edi
mov ecx, esi
call fcn.0043f150
lea ecx, [ebp - 0x1fc]
mov edx, esi
call fcn.0043f150
mov edx, dword [ebp - 0x14]
mov ecx, 0x18
lea edi, [ebp - 0xdc]
lea esi, [ebp - 0x1fc]
rep movsd dword es:[edi], dword [esi]
add edx, 0xfffffffc
mov eax, edx
shr eax, 3
jmp 0x43fb20
mov edi, dword [ebp - 0x18]
lea esi, [ebp - 0xdc]
mov ecx, 0x18
rep movsd dword es:[edi], dword [esi]
add esp, 0x850
pop esi
pop edi
pop ebx
pop ebp
ret