Function at 0x439690
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ecx + 0x1c], 0
mov dword [esp - 0xc], 0x1fa4ed28
mov dword [ebp - 0xc], ecx
jne 0x439994
mov eax, dword [ebp + 8]
xchg ecx, ecx
push ebx
push esi
push edi
mov dword [esp - 0x10], 0x75466093
nop
mov dword [esp - 4], 0x3c1a49b8
sub dword [esp - 4], 0x15282538
mov dword [esp - 0x2c], ebx
xor dword [esp - 4], 0x49f811b1
sub dword [esp - 4], 0x422a03d
sub dword [esp - 4], 0x6a5eb12b
sub dword [esp - 4], 0x88e3b5
mov dword [esp - 0x40], ebx
sub esp, 4
mov dword [ecx + 0x1c], eax
lea ebx, [ecx + 0x50]
xchg ecx, ecx
nop
mov dword [esp - 4], 0x1b53db72
xor dword [esp - 4], 0x16d38b5f
add dword [esp - 4], 0x4abc6777
mov dword [esp - 0x2c], esi
xor dword [esp - 4], 0x76b0f9da
add dword [esp - 4], 0x48579b89
sub dword [esp - 4], 0x76e3e9ff
mov dword [esp - 0xc], 0x60d45273
sub esp, 4
lea eax, [ebp - 8]
mov ecx, 0x4bb5a0
push eax
mov dword [esp - 0x34], 0x42de9c1e
call fcn.00485fe0
push eax
mov ecx, ebx
call fcn.00480bb0
mov dword [esp - 0x24], 0x20746ce0
cmp dword [ebp - 4], 2
jbe 0x43977a
push dword [ebp - 8]
call fcn.0048b6f0
mov dword [esp - 0x1c], edi
add esp, 4
mov eax, dword [ebx + 4]
mov dword [ebp + 8], eax
cmp eax, 2
xchg ecx, ecx
jbe 0x439789
mov ebx, dword [ebx]
xor ecx, ecx
mov dword [esp - 0x2c], 0xa28fd09
inc eax
mov edx, 0x5b6740b1
xor edx, 0x7b8c022e
xchg ebp, ebp
xor edx, 0x4cd22ca5
sub edx, 0x5d19f23a
add edx, 0x134e6c1d
xor edx, 0x226de81f
mov dword [esp - 0x34], edi
mul edx
seto cl
neg ecx
or ecx, eax
mov dword [esp - 0x1c], esi
push ecx
call fcn.0048b720
mov esi, eax
mov dword [esp - 0x24], 0x1182112c
add esp, 4
mov eax, dword [ebp + 8]
xor edi, edi
mov ebp, ebp
mov dword [ebp - 4], esi
test eax, eax
je 0x439847
mov dword [esp - 0x30], ebx
mov edx, esi
sub ebx, esi
mov esi, eax
mov dword [esp - 0x20], 0xab88c9
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov edi, edi
mov eax, 0x93bfabf
add eax, 0x61fa7c66
sub eax, 0x27448088
add eax, 0x38c018a4
xchg ebp, ebp
xor eax, 0xfcc2b01
shl ecx, 3
inc edi
sar eax, cl
mov dword [esp - 0x18], esp
cbw
xor ax, word [ebx + edx - 2]
mov word [edx - 2], ax
mov dword [esp - 0x14], ebp
cmp edi, esi
jb 0x4397fd
mov esi, dword [ebp - 4]
mov eax, dword [ebp + 8]
xchg ebx, ebx
mov ebx, dword [ebp - 0xc]
xor ecx, ecx
mov word [esi + eax*2], cx
mov dword [esp - 0x34], 0x2fc80684
lea edi, [ebx + 0x20]
mov dword [edi], 0x3ebb4230
add dword [edi], 0x2fe863ff
mov dword [esp - 0x34], 0x212c4512
xor dword [edi], 0x73c2e4c5
add dword [edi], 0x11b92a4d
add dword [edi], 0x38343391
xchg edx, edx
sub dword [edi], 0x674ea098
sub esp, 4
mov dword [esp], 0x641b08c0
xor dword [esp], 0x31c7ce2a
xchg edx, edx
xor dword [esp], 0x42deafb0
add dword [esp], 0x58817ffd
xor dword [esp], 0x6f839657
mov dword [esp - 0x44], edx
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x24], 0x69addb2d
xor dword [ebx + 0x24], 0x7ed89139
mov dword [esp - 0x24], edi
add dword [ebx + 0x24], 0x49ea763c
xor dword [ebx + 0x24], 0x605fd128
sub dword [ebx + 0x24], 0x1001175
mov dword [esp - 0x38], esp
mov dword [ebx + 0x28], 0x4399b0
mov dword [ebx + 0x34], eax
mov eax, dword [0x4bac98]
xor eax, dword [0x4ba958]
mov dword [esp - 0x18], 0x58f0c3b5
push ecx
call eax
mov dword [ebx + 0x3c], eax
mov eax, dword [0x4bae50]
xchg ecx, ecx
xor eax, dword [0x4ba958]
nop
sub esp, 4
mov dword [esp], 0x67b852fd
mov dword [esp - 0x44], 0x7102026d
xor dword [esp], 0x3634779b
add dword [esp], 0x2972b57d
sub dword [esp], 0x17e347af
sub dword [esp], 0x1942fccb
xchg edi, edi
sub dword [esp], 0x8181688
sub dword [esp], 0x41c07fe1
call eax
mov esi, esi
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x48], esi
mov eax, dword [0x4bacb8]
mov esp, esp
xor eax, dword [0x4ba958]
push edi
call eax
test ax, ax
xchg ebp, ebp
push esi
setne bl
call fcn.0048b6f0
mov dword [esp - 0x34], 0x226498e1
add esp, 4
mov al, bl
pop edi
pop esi
mov dword [esp - 0x14], esp
pop ebx
mov esp, ebp
pop ebp
ret 4
xor al, al
mov esp, ebp
xchg esp, esp
pop ebp
ret 4