Function at 0x43991f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
push ebx
push esi
push edi
push ecx
call fcn.004c4b67
pop ecx
push 3
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], eax
call fcn.0042ce8d
mov dword [ebp - 8], 0xffffffff
xor esi, esi
mov dword [ebp - 0x10], 0x737ae9f9
inc esi
mov dword [ebp - 0xc], 0x42cc3231
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], 0x4fe
cmp dword [ebp - 0x18], 0x80a
jle 0x4399bb
xor ebx, ebx
xor edi, edi
mov dword [ebp - 8], edi
mov esi, edi
mov edi, 0xd42
mov eax, esi
lea ecx, [ebp - 0x48]
or eax, ebx
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
mov ecx, eax
call fcn.0042cb3e
push eax
call fcn.004f967e
pop ecx
lea ecx, [ebp - 0x48]
call fcn.004014ef
dec esi
dec edi
jne 0x439975
mov edi, dword [ebp - 8]
inc edi
mov dword [ebp - 8], edi
cmp edi, 0x3ac9
jl 0x43996e
inc ebx
cmp ebx, 0x55c
jl 0x439969
xor esi, esi
inc esi
cmp dword [ebp - 0x18], 0x420
jge 0x4399cf
push 0xac1d48
call fcn.004f967e
pop ecx
mov dword [ebp - 8], 0
jmp 0x4399ec
push dword [ebp - 8]
lea ecx, [ebp - 0x30]
call fcn.0042cf33
mov dword [eax], 0xfffffff8
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x4399d8
mov dword [ebp - 0x18], 0x73a3
cmp dword [ebp - 0x18], 0x754b
jle 0x439a51
xor edi, edi
xor ebx, ebx
xor esi, esi
mov ecx, esi
mov eax, ebx
shl eax, cl
lea ecx, [ebp - 0x60]
xor eax, edi
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
mov ecx, eax
call fcn.0042cb3e
push eax
call fcn.004f967e
pop ecx
lea ecx, [ebp - 0x60]
call fcn.004014ef
inc esi
cmp esi, 0x4cc1
jl 0x439a08
inc ebx
cmp ebx, 0x51e7
jl 0x439a06
inc edi
cmp edi, 0x6831
jl 0x439a04
xor esi, esi
inc esi
mov dword [ebp - 8], 0
jmp 0x439a64
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x24], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x439a5a
cmp dword [ebp - 0x18], 0x6ff6
jge 0x439a7e
push 0xac1d88
call fcn.004f967e
pop ecx
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x439a90
push 0
call dword [0x1efd438]
push esi
lea ecx, [ebp - 0x30]
call fcn.0042cf33
mov edi, eax
cmp dword [edi], 0
je 0x439b60
push 2
lea ecx, [ebp - 0x30]
call fcn.0042cf33
mov ecx, dword [ebp - 0x20]
xor edx, edx
cmp dword [eax], ecx
mov eax, dword [ebp - 0x24]
setne dl
mov dword [edi], edx
cmp dword [edi], 0x6fae
jle 0x439acb
cmp dword [ebp - 0x24], 0
jne 0x439ad5
cmp dword [ebp - 0x20], 0
jne 0x439ad5
xor edx, edx
jmp 0x439ad7
mov edx, esi
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setle cl
xor edx, edx
imul eax, ecx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
test ecx, ecx
setns al
imul eax, eax, 0xffff
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x439b18
mov eax, dword [ebp - 0x20]
dec dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
push 0
pop ecx
setns cl
sub ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0xc]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x4dbc0ba
setg al
xor edx, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
cmp eax, ecx
setle dl
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
cmp edx, 0xfffffff9
jne 0x439b62
xor esi, esi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp esi, eax
setl cl
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x30]
call fcn.0042cf2e
mov eax, dword [ebp - 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret