Function at 0x443e70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov dword [esp + 0x20], 0xd2d1d0d7
mov dword [esp + 0x24], 0
mov byte [esp + 0x28], 0
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov eax, 0x4dcce63
mov edi, 0xfb23319c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], edi
movzx edx, byte [esp + eax - 0x4dcce43]
mov edi, edx
not edi
mov ebx, edi
and ebx, 0x498e514
mov esi, edx
and esi, 0xffffffeb
or esi, ebx
mov ebx, esi
xor ebx, 0x3671aeb
xor esi, 0x498e514
mov ecx, esi
xor edi, esi
add esi, ebx
add esi, edi
mov edi, dword [esp + 8]
and ecx, edx
sub esi, ecx
inc esi
or esi, edi
add esi, 0x8000000
or edx, eax
and edx, esi
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
add cl, 0x4b
mov byte [esp + eax - 0x4dcce43], cl
inc eax
dec edi
cmp eax, 0x4dcce6c
jne 0x443eb0
mov eax, dword [esp + 0x20]
mov esi, dword [0x44fb4c]
test esi, esi
je 0x443f67
xor ecx, ecx
mov edx, dword [0x44fb50]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0xffc37dba
je 0x443f40
inc ecx
cmp esi, ecx
jne 0x443f30
jmp 0x443f67
mov edx, dword [edx + ecx*8 + 4]
cmp edx, eax
je 0x443f67
lea ecx, [esp + 0x18]
push ecx
push 0
push 0
push 2
push dword [ebp + 8]
push 5
push dword [0x44fb54]
push edx
call fcn.00440280
add esp, 0x20
cmp eax, 0xc0000023
jne 0x444202
push dword [esp + 0x18]
call fcn.0043e5e0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], 0xd2d1d0d7
mov dword [esp + 0x24], 0
mov byte [esp + 0x28], 0
mov edx, 0x4dcce63
mov edi, 0xfb23319c
nop
nop
nop
mov dword [esp + 8], edi
movzx esi, byte [esp + edx - 0x4dcce43]
mov edi, esi
not edi
mov ebx, edi
and ebx, 0x498e514
mov ecx, esi
and ecx, 0xffffffeb
or ecx, ebx
mov ebx, ecx
xor ebx, 0x3671aeb
xor ecx, 0x498e514
mov eax, ecx
xor edi, ecx
add ecx, ebx
add ecx, edi
mov edi, dword [esp + 8]
and eax, esi
sub ecx, eax
inc ecx
or ecx, edi
add ecx, 0x8000000
or esi, edx
and esi, ecx
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x1c]
add al, 0x4b
mov byte [esp + edx - 0x4dcce43], al
inc edx
dec edi
cmp edx, 0x4dcce6c
jne 0x443fb0
mov eax, dword [esp + 0x20]
mov ecx, dword [0x44fb4c]
test ecx, ecx
je 0x444050
xor edx, edx
mov edi, dword [0x44fb50]
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xffc37dba
je 0x444058
inc edx
cmp ecx, edx
jne 0x444040
jmp 0x444083
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
jmp 0x444083
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, eax
je 0x444083
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x18]
push dword [esp + 0x18]
push 2
push dword [ebp + 8]
push 5
push dword [0x44fb54]
push ecx
call fcn.00440280
add esp, 0x20
mov dword [esp + 8], eax
test eax, eax
mov edi, dword [esp + 0x10]
js 0x4441f5
cmp dword [ebp + 0x10], 0
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
je 0x4441b1
cmp dword [ebp + 0xc], 0
je 0x4441a3
mov ecx, dword [edi + 0x10]
shr ecx, 1
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
cmp eax, ecx
jb 0x4440bd
mov eax, ecx
test eax, eax
mov esi, dword [ebp + 0xc]
je 0x444194
add dword [esp + 4], 0x2c
mov ecx, eax
and ecx, 3
je 0x44411e
mov dword [esp + 0x14], eax
xor edi, edi
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
movzx ebx, word [eax]
xor edx, edx
test bx, bx
setne dl
lea eax, [eax + edx*2]
mov dword [esp + 4], eax
mov word [esi], bx
add esi, 2
inc edi
cmp ecx, edi
jne 0x4440e0
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x14]
mov esi, eax
sub esi, edi
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x18]
mov edi, dword [esp + 0x10]
cmp eax, 4
jae 0x444125
jmp 0x444194
mov esi, eax
cmp eax, 4
jb 0x444194
mov ebx, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebx], dx
lea edx, [eax + ecx*2]
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx + 2], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov dword [esp + 4], eax
mov word [ebx + 6], dx
add ebx, 8
add esi, 0xfffffffc
jne 0x444130
mov dword [esp + 0xc], ebx
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x18]
mov eax, dword [esp + 0xc]
mov word [eax], 0
mov ecx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x14]
mov eax, dword [edi + 0x10]
shr eax, 1
mov edi, dword [ebp + 0x10]
mov dword [edi], eax
mov edi, dword [esp + 0x10]
test esi, esi
je 0x4441ba
mov eax, dword [edi + 0x14]
mov dword [esi], eax
test ebx, ebx
je 0x4441c5
mov eax, dword [edi + 0x18]
shr eax, 1
mov dword [ebx], eax
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x4441d3
mov eax, dword [edi + 0x1c]
shr eax, 1
mov dword [esi], eax
test ecx, ecx
je 0x4441dc
mov eax, dword [edi + 0x20]
mov dword [ecx], eax
test edx, edx
je 0x4441e7
mov eax, dword [edi + 0x24]
shr eax, 1
mov dword [edx], eax
cmp dword [ebp + 0x28], 0
je 0x4441f5
mov eax, dword [edi + 0x28]
mov ecx, dword [ebp + 0x28]
mov dword [ecx], eax
push edi
call fcn.0043e740
add esp, 4
mov eax, dword [esp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret