Function at 0x43ddb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [esp], 0x20272625
xor edi, edi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx]
mov eax, edi
and eax, 2
mov edx, ecx
xor edx, 0x752dbdb9
add edx, eax
mov eax, edx
and eax, esi
lea ebp, [edx + esi]
not ebp
lea eax, [eax*2]
add eax, ebp
mov ebp, edx
not ebp
or eax, ebp
add eax, edx
lea eax, [eax*2 + 2]
xor edx, eax
and ebp, eax
add ebp, ebp
sub edx, ebp
add edx, esi
mov esi, edx
and esi, 1
mov eax, 0x9d
sub eax, edx
and edx, 0xfffffffe
add edx, 0x62
xor edx, 0xfe
and eax, 0xfe
or eax, edx
not eax
add eax, esi
mov byte [esp + ecx], al
inc ecx
add edi, 2
cmp ecx, 4
jne 0x43ddd0
mov eax, dword [esp]
mov esi, dword [0x44a4ac]
test esi, esi
je 0x43de9c
xor ecx, ecx
mov edx, dword [0x44a4b0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x33079ccd
je 0x43de70
inc ecx
cmp esi, ecx
jne 0x43de60
jmp 0x43de9c
mov edx, dword [edx + ecx*8 + 4]
cmp edx, eax
je 0x43de9c
lea ecx, [esp + 0x10]
push ecx
push 0
push 0
push 0
push dword [esp + 0x40]
push dword [esp + 0x40]
push 0x18
push edx
push dword [0x44a4b4]
call fcn.00439880
add esp, 0x24
mov dword [esp], 0x81c6c729
mov word [esp + 4], 0
mov ebx, 0x5a8b29b1
mov edi, 0x4e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx - 0x5a8b29b1]
mov ebp, edi
xor ebp, ebx
and ebp, ecx
xor ebp, ebx
mov esi, ebp
mov edx, ebp
xor edx, 0x3b482f8a
add edx, ebp
mov ecx, ebp
and ecx, 0x8a
and esi, 0x40830075
sub edx, esi
add ecx, edx
and edx, 1
xor ecx, 1
or ecx, edx
add ecx, edx
mov byte [esp + ebx - 0x5a8b29b1], cl
inc ebx
dec edi
cmp ebx, 0x5a8b29b7
jne 0x43dec0
cmp eax, dword [esp]
jne 0x43e117
push dword [esp + 0x10]
call fcn.00436bc0
add esp, 4
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp], 0x20272625
xor edx, edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi]
mov ebp, edx
and ebp, 2
mov esi, edi
xor esi, 0x752dbdb9
add esi, ebp
mov ebp, esi
and ebp, ebx
lea ecx, [esi + ebx]
not ecx
lea ecx, [ecx + ebp*2]
mov ebp, esi
not ebp
or ecx, ebp
add ecx, esi
lea ecx, [ecx*2 + 2]
xor esi, ecx
and ebp, ecx
add ebp, ebp
sub esi, ebp
add esi, ebx
mov ebp, esi
and ebp, 1
mov ecx, 0x9d
sub ecx, esi
and esi, 0xfffffffe
add esi, 0x62
xor esi, 0xfe
and ecx, 0xfe
or ecx, esi
not ecx
add ecx, ebp
mov byte [esp + edi], cl
inc edi
add edx, 2
cmp edi, 4
jne 0x43df40
mov ecx, dword [esp]
mov dword [esp + 8], ecx
mov ecx, dword [0x44a4ac]
test ecx, ecx
je 0x43dfe0
xor edx, edx
mov edi, dword [0x44a4b0]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
nop
nop
nop
cmp dword [edi + edx*8], 0x33079ccd
je 0x43dfee
inc edx
cmp ecx, edx
jne 0x43dfd0
jmp 0x43e025
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
jmp 0x43e025
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, dword [esp + 8]
je 0x43e025
lea edx, [esp + 0x10]
push edx
push dword [esp + 0x18]
push esi
push 0
push dword [esp + 0x40]
push dword [esp + 0x40]
push 0x18
push ecx
push dword [0x44a4b4]
mov edi, eax
call fcn.00439880
add esp, 0x24
mov dword [esp + 8], eax
mov eax, edi
test ebx, ebx
je 0x43e10a
cmp dword [esp + 8], 0
js 0x43e10a
test ebp, ebp
je 0x43e103
mov ecx, dword [esi + 0xc]
shr ecx, 1
mov edx, dword [ebx]
cmp edx, ecx
jb 0x43e04d
mov edx, ecx
test edx, edx
je 0x43e0f9
add eax, 0x10
mov ecx, edx
and ecx, 3
je 0x43e099
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax]
xor ebx, ebx
test si, si
setne bl
lea eax, [eax + ebx*2]
mov word [ebp], si
add ebp, 2
inc edi
cmp ecx, edi
jne 0x43e070
mov esi, edx
sub esi, edi
mov ebx, dword [esp + 0x38]
cmp edx, 4
jae 0x43e0a0
jmp 0x43e0f9
mov esi, edx
cmp edx, 4
jb 0x43e0f9
mov ebx, ebp
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea edi, [eax + ecx*2]
mov word [ebp], dx
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edx, [edi + ecx*2]
mov word [ebp + 2], ax
movzx eax, word [edi + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edi, [edx + ecx*2]
mov word [ebp + 4], ax
movzx ecx, word [edx + ecx*2]
xor eax, eax
test cx, cx
setne al
mov word [ebp + 6], cx
add ebp, 8
lea eax, [edi + eax*2]
add esi, 0xfffffffc
jne 0x43e0a0
mov ebx, dword [esp + 0x38]
mov word [ebp], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0xc]
shr eax, 1
mov dword [ebx], eax
push esi
call fcn.00436c60
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret