Function at 0x443050
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x280
mov ebp, dword [0x459484]
mov ebx, dword [0x459480]
mov eax, ebx
or eax, ebp
jne 0x443128
mov dword [esp + 0x78], 0x4fda49da
mov dword [esp + 0x7c], 0x43de4de8
mov dword [esp + 0x80], 0x471441dc
mov dword [esp + 0x84], 0xbb2645e0
mov dword [esp + 0x88], 0xbfbeb924
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0x13
ja 0x443104
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 0x78]
mov edx, eax
xor edx, 0x62ae4df2
and eax, 0xe2ae4df2
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x180]
add al, 0x46
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0x78], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0x14
jb 0x4430c0
lea eax, [esp + 0x78]
push eax
call fcn.00442e90
add esp, 4
mov ebx, eax
mov dword [0x459484], edx
mov dword [0x459480], eax
or eax, edx
je 0x4431f3
mov ebp, edx
lea eax, [esp + 0x38]
push 0x40
push eax
push ebp
push ebx
call fcn.00442bc0
add esp, 0x10
test eax, eax
js 0x4431f3
mov eax, dword [esp + 0x74]
mov ecx, eax
sar ecx, 0x1f
add eax, ebx
adc ecx, ebp
lea edx, [esp + 0x78]
push 0x108
push edx
push ecx
push eax
call fcn.00442bc0
add esp, 0x10
xor edi, edi
test eax, eax
js 0x4431f5
cmp dword [esp + 0x104], 0
je 0x4431f5
mov eax, dword [esp + 0x100]
mov esi, 0
test eax, eax
je 0x4431f7
add eax, ebx
mov ecx, ebp
adc ecx, 0
lea edx, [esp + 0x10]
push 0x28
push edx
push ecx
push eax
call fcn.00442bc0
add esp, 0x10
test eax, eax
js 0x4431f3
mov ecx, dword [esp + 0x24]
lea esi, [ecx*4]
mov eax, 0xffffffff
cmp ecx, 0x40000000
jae 0x4431bc
mov eax, esi
push eax
call fcn.0040c630
add esp, 4
mov edx, dword [esp + 0x2c]
add edx, ebx
mov ecx, ebp
adc ecx, 0
push esi
mov dword [esp + 8], eax
push eax
push ecx
push edx
call fcn.00442bc0
add esp, 0x10
test eax, eax
js 0x443206
mov eax, dword [esp + 0x24]
test eax, eax
jns 0x44320f
mov eax, 0xffffffff
jmp 0x443211
xor edi, edi
xor esi, esi
mov eax, edi
mov edx, esi
add esp, 0x280
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
xor esi, esi
jmp 0x44335d
add eax, eax
push eax
call fcn.0040c630
add esp, 4
mov esi, dword [esp + 0x28]
mov ecx, esi
and ecx, 2
mov edx, esi
or esi, 2
imul esi, ecx
xor ecx, 2
and edx, 0xfffffffd
imul edx, ecx
add esi, edx
mov ecx, dword [esp + 0x34]
add ecx, ebx
mov edx, ebp
adc edx, 0
push esi
mov dword [esp + 4], eax
push eax
push edx
push ecx
call fcn.00442bc0
add esp, 0x10
test eax, eax
js 0x44334e
mov esi, dword [esp + 0x28]
mov eax, 0xffffffff
cmp esi, 0x40000000
jae 0x443271
lea eax, [esi*4]
push eax
call fcn.0040c630
add esp, 4
mov edx, esi
and edx, 0xfffffffb
mov ecx, esi
and ecx, 4
or esi, 4
imul esi, ecx
xor ecx, 4
imul ecx, edx
add esi, ecx
mov edx, dword [esp + 0x30]
add edx, ebx
mov ecx, ebp
adc ecx, 0
push esi
mov dword [esp + 0xc], eax
push eax
push ecx
push edx
call fcn.00442bc0
add esp, 0x10
test eax, eax
js 0x44333c
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp ecx, eax
jb 0x4432c3
mov ecx, eax
test ecx, ecx
je 0x44333c
xor edi, edi
lea esi, [esp + 0x180]
mov dword [esp + 0xc], ecx
jmp 0x4432e9
inc edi
mov ecx, dword [esp + 0xc]
cmp ecx, edi
je 0x44333c
mov eax, dword [esp + 8]
mov eax, dword [eax + edi*4]
add eax, ebx
mov ecx, ebp
adc ecx, 0
push 0x100
push esi
push ecx
push eax
call fcn.00442bc0
add esp, 0x10
cmp eax, 0xbfffffff
ja 0x4432e0
push 0xb14a5e2
push esi
call fcn.00443370
add esp, 8
cmp eax, dword [esp + 0x294]
jne 0x4432e0
mov eax, dword [esp]
movzx eax, word [eax + edi*2]
mov ecx, dword [esp + 4]
add ebx, dword [ecx + eax*4]
adc ebp, 0
mov edi, ebx
mov esi, ebp
jmp 0x443340
xor edi, edi
xor esi, esi
push dword [esp + 8]
call fcn.0040c640
add esp, 4
jmp 0x443352
xor edi, edi
xor esi, esi
push dword [esp]
call fcn.0040c640
add esp, 4
push dword [esp + 4]
call fcn.0040c640
add esp, 4
jmp 0x4431f7