Function at 0x43cdc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov edi, ecx
mov eax, dword [esp + 0x74]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x20], 0x100000
mov dword [esp + 8], 0
mov dword [esp + 0x34], 0xcccdcacb
mov dword [esp + 0x38], 0
mov eax, 0xd2
nop
nop
movzx ecx, byte [esp + eax - 0x9e]
lea edx, [eax - 0x496f1300]
not ecx
and edx, ecx
lea esi, [edx + edx]
not esi
add esi, edx
or ecx, eax
and ecx, esi
lea edx, [ecx + ecx]
not edx
add edx, ecx
mov ecx, edx
and ecx, 0x65
xor edx, 0xe5
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax - 0x9e], cl
inc eax
cmp eax, 0xda
jne 0x43ce10
mov eax, dword [esp + 0x34]
mov ecx, dword [0x44dd14]
test ecx, ecx
je 0x43ceae
xor edx, edx
mov esi, dword [0x44dd18]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x98d5a07f
je 0x43ce80
inc edx
cmp ecx, edx
jne 0x43ce70
jmp 0x43ceae
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43ceae
lea eax, [esp + 0x20]
lea edx, [esp + 8]
push 4
push 0x3000
push eax
push 0
push edx
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44dd1c]
call fcn.0043e8e0
add esp, 0x24
test eax, eax
js 0x43d51a
mov dword [esp + 0x24], edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], 0xf0f0908
mov byte [esp + 0x14], 0
mov eax, 0x3dec3cf7
mov ecx, 0x4f7b0f40
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x3dec3ce7]
lea edi, [eax + 0x7298b3cb]
lea esi, [ecx - 0x4f7b0f03]
xor esi, edi
and esi, edx
xor esi, edi
not esi
and esi, edi
mov ebx, esi
and ebx, 2
mov edi, esi
or esi, 2
imul esi, ebx
xor ebx, 2
and edi, 0xb084f0cd
imul edi, ebx
mov ebx, edx
sub ebx, edi
sub ebx, esi
lea ebp, [eax + ebx]
add ebp, 0x7298b3ca
mov dword [esp], ebp
lea ebp, [esi + edi]
sub ebp, edx
add ebp, ecx
not ebp
or ebp, dword [esp]
add ebx, eax
and ebp, 1
xor ebx, 1
add ebx, edx
add ebx, ebp
sub ebx, edi
add edx, eax
sub edx, edi
sub ebx, esi
sub edx, esi
and edx, 0xfe
sub ebx, edx
add ebx, eax
mov byte [esp + eax - 0x3dec3ce7], bl
inc eax
dec ecx
cmp eax, 0x3dec3cfc
jne 0x43cf10
mov esi, dword [esp + 0x10]
cmp esi, 0x7ffffffe
mov edi, dword [esp + 0x24]
ja 0x43d461
mov dword [esp], 0
lea ebp, [esp + 0x34]
xor ebx, ebx
mov dword [esp + 4], 0
jmp 0x43cffa
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 4]
mov dword [eax + 4], ecx
mov dword [eax], ebx
mov ecx, dword [esp]
mov dword [eax + 8], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov dword [esp], eax
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x34]
cmp esi, 0x7fffffff
jae 0x43d461
mov ecx, edi
push 0
push 0x1c
push ebp
push 0
push esi
call fcn.0043cc00
cmp eax, 0xbfffffff
ja 0x43d461
mov dword [esp + 0x30], esi
test eax, eax
js 0x43cfe6
cmp dword [esp + 0x44], 0x1000
jne 0x43cfe6
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0xffffff99
or eax, 0x66
test eax, ecx
je 0x43cfe6
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
cmp eax, edx
jbe 0x43d1da
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], 0xcccdcacb
mov dword [esp + 0x14], 0
mov ecx, 0xd2
nop
movzx edx, byte [esp + ecx - 0xc2]
lea esi, [ecx - 0x496f1300]
not edx
and esi, edx
lea ebx, [esi + esi]
not ebx
add ebx, esi
or edx, ecx
and edx, ebx
lea esi, [edx + edx]
not esi
add esi, edx
mov edx, esi
and edx, 0x65
xor esi, 0xe5
lea edx, [esi + edx*2]
inc dl
mov byte [esp + ecx - 0xc2], dl
inc ecx
cmp ecx, 0xda
jne 0x43d060
mov ecx, dword [0x44dd14]
test ecx, ecx
je 0x43d0fe
mov edx, dword [esp + 0x10]
xor esi, esi
mov ebx, dword [0x44dd18]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x6dbc3610
je 0x43d0d0
inc esi
cmp ecx, esi
jne 0x43d0c0
jmp 0x43d0fe
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je 0x43d0fe
push 0x8000
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x10]
push eax
push 0xffffffffffffffff
push 0x10
push ecx
push dword [0x44dd1c]
call fcn.0043e8e0
add esp, 0x1c
mov eax, dword [esp + 0x40]
mov dword [esp + 8], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], 0xcccdcacb
mov dword [esp + 0x14], 0
mov eax, 0xd2
mov ebx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0xc2]
lea edx, [eax - 0x496f1300]
not ecx
and edx, ecx
lea esi, [edx + edx]
not esi
add esi, edx
or ecx, eax
and ecx, esi
lea edx, [ecx + ecx]
not edx
add edx, ecx
mov ecx, edx
and ecx, 0x65
xor edx, 0xe5
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax - 0xc2], cl
inc eax
cmp eax, 0xda
jne 0x43d130
mov eax, dword [esp + 0x10]
mov ecx, dword [0x44dd14]
test ecx, ecx
je 0x43d1ce
xor edx, edx
mov esi, dword [0x44dd18]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x98d5a07f
je 0x43d1a0
inc edx
cmp ecx, edx
jne 0x43d190
jmp 0x43d1ce
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43d1ce
push 4
push 0x3000
lea eax, [esp + 0x28]
push eax
push 0
lea eax, [esp + 0x18]
push eax
push 0xffffffffffffffff
push 0x18
push ecx
push dword [0x44dd1c]
call fcn.0043e8e0
add esp, 0x24
test eax, eax
js 0x43d461
mov edx, dword [esp + 0x20]
mov ecx, edi
lea eax, [esp + 0x5c]
push eax
push edx
push dword [esp + 0x10]
push dword [esp + 0x3c]
call fcn.0043cce0
test eax, eax
jns 0x43d1fe
cmp eax, 0x8000000d
jne 0x43cfe0
push dword [esp + 0x80]
push dword [esp + 0x80]
push dword [esp + 0x80]
push dword [esp + 0x68]
push dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
call fcn.0043d530
add esp, 0x18
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
cmp esi, eax
je 0x43cfc4
mov dword [esp + 0x54], esi
mov ecx, dword [esp + 4]
mov edi, dword [esp]
jmp 0x43d28e
mov dword [esp], edi
mov edx, eax
mov edi, dword [esp + 0x58]
mov eax, edi
not eax
and eax, ebp
not ebp
and ebp, edi
sub ebp, eax
mov eax, ebp
mov edi, dword [esp + 0x30]
and eax, edi
xor ebp, edi
lea eax, [eax*2]
add eax, ebp
mov dword [ebx + edx], eax
add ecx, 4
add esi, 4
cmp esi, dword [esp + 0x2c]
mov edi, dword [esp]
je 0x43d410
mov edx, dword [esi]
mov ebp, dword [esp + 8]
mov eax, ecx
sub eax, ebx
cmp ecx, edi
mov dword [esp + 0x58], edx
jne 0x43d250
mov dword [esp + 4], ecx
mov dword [esp + 0xc], eax
mov ecx, eax
sar ecx, 2
lea eax, [ecx + 1]
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x43d2bc
mov edi, eax
lea eax, [edi*4]
push eax
call fcn.00408ac0
add esp, 4
test ebx, ebx
je 0x43d3fb
mov dword [esp], edi
cmp eax, ebx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 4]
mov dword [esp + 0x28], eax
jbe 0x43d39f
cmp ecx, eax
jbe 0x43d39f
cmp dword [esp + 0xc], 0
je 0x43d3e8
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
add eax, edx
dec eax
mov ebx, dword [esp + 0x1c]
lea ecx, [ebx + edx]
dec ecx
mov edi, edx
and edi, 7
je 0x43d338
neg edi
xor edx, edx
nop
nop
nop
nop
movzx ebx, byte [ecx + edx]
mov byte [eax + edx], bl
dec edx
cmp edi, edx
jne 0x43d320
add ecx, edx
add eax, edx
add edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1c]
mov edi, ebx
sub edi, dword [esp + 4]
cmp edi, 0xfffffff8
ja 0x43d3e8
neg edx
xor edi, edi
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edi]
mov byte [eax + edi], bl
movzx ebx, byte [ecx + edi - 1]
mov byte [eax + edi - 1], bl
movzx ebx, byte [ecx + edi - 2]
mov byte [eax + edi - 2], bl
movzx ebx, byte [ecx + edi - 3]
mov byte [eax + edi - 3], bl
movzx ebx, byte [ecx + edi - 4]
mov byte [eax + edi - 4], bl
movzx ebx, byte [ecx + edi - 5]
mov byte [eax + edi - 5], bl
movzx ebx, byte [ecx + edi - 6]
mov byte [eax + edi - 6], bl
movzx ebx, byte [ecx + edi - 7]
mov byte [eax + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x43d350
jmp 0x43d3e8
mov ecx, dword [esp + 0xc]
shr ecx, 2
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, ebx
mov eax, ecx
shr ecx, 1
and ecx, 1
mov ebx, edx
mov dword [esp + 4], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x43d3e8
mov ecx, dword [esp + 0xc]
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esp + 4]
mov byte [eax + ecx], dl
push dword [esp + 0x1c]
call fcn.00408ad0
add esp, 4
mov edi, dword [esp]
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi*4]
mov dword [esp], ecx
mov ecx, eax
mov ebx, eax
mov edx, dword [esp + 0xc]
add ecx, edx
jmp 0x43d255
mov eax, dword [esp + 0x74]
mov dword [eax + 4], ecx
mov dword [eax], ebx
mov dword [eax + 8], edi
mov eax, dword [esp + 0x54]
test eax, eax
je 0x43d450
mov dword [esp + 4], ecx
cmp eax, dword [esp + 0x2c]
lea ebp, [esp + 0x34]
je 0x43d447
push eax
mov dword [esp + 4], edi
call fcn.00408ad0
add esp, 4
mov dword [esp + 0x10], 0
mov edi, dword [esp + 0x24]
jmp 0x43cfe0
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x24]
lea ebp, [esp + 0x34]
jmp 0x43cfe0
mov dword [esp + 0x10], 0xcccdcacb
mov dword [esp + 0x14], 0
mov eax, 0xd2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0xc2]
lea edx, [eax - 0x496f1300]
not ecx
and edx, ecx
lea esi, [edx + edx]
not esi
add esi, edx
or ecx, eax
and ecx, esi
lea edx, [ecx + ecx]
not edx
add edx, ecx
mov ecx, edx
and ecx, 0x65
xor edx, 0xe5
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax - 0xc2], cl
inc eax
cmp eax, 0xda
jne 0x43d480
mov eax, dword [0x44dd14]
test eax, eax
je 0x43d51a
mov ecx, dword [esp + 0x10]
xor edx, edx
mov esi, dword [0x44dd18]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x6dbc3610
je 0x43d4f0
inc edx
cmp eax, edx
jne 0x43d4e0
jmp 0x43d51a
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x43d51a
lea ecx, [esp + 0x50]
lea edx, [esp + 8]
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 0x10
push eax
push dword [0x44dd1c]
call fcn.0043e8e0
add esp, 0x1c
mov eax, dword [esp + 0x74]
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 0x10