Function at 0x43a580
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov dword [esp + 8], ecx
cmp dword [ecx + 8], 0
je 0x43a620
mov eax, dword [esp + 8]
mov edx, dword [eax]
test edx, edx
je 0x43a620
mov ecx, dword [ebp + 0xc]
mov dword [esp], 0xc0c7c6c5
mov dword [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
movzx esi, byte [esp + eax]
lea edi, [eax + 0x51]
and edi, esi
lea ebx, [eax + esi]
add ebx, 0x51
add edi, edi
sub ebx, edi
add bl, 0x6b
mov byte [esp + eax], bl
mov esi, eax
and esi, 1
xor eax, 1
lea eax, [eax + esi*2]
cmp eax, 8
jb 0x43a5c0
mov eax, dword [esp]
mov esi, dword [0x44cf90]
test esi, esi
je 0x43a698
xor ebx, ebx
mov edi, dword [0x44cf94]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + ebx*8], 0x2dedf0b8
je 0x43a677
inc ebx
cmp esi, ebx
jne 0x43a610
jmp 0x43a698
mov dword [esp], 0x29eaebec
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, 0x57
mov ecx, 0xa8
nop
nop
nop
movzx esi, byte [esp + eax - 0x57]
lea edx, [eax - 0x40]
mov edi, ecx
and edi, 0xa5
and edx, 0x1a
or edx, edi
xor edx, 0x1a
mov ebx, eax
xor ebx, edx
and ebx, esi
xor ebx, edx
mov dl, 0x4c
sub dl, bl
mov byte [esp + eax - 0x57], dl
inc eax
dec ecx
cmp eax, 0x5e
jne 0x43a640
mov eax, dword [esp]
jmp 0x43a838
mov esi, dword [edi + ebx*8 + 4]
cmp esi, eax
je 0x43a698
push dword [ebp + 8]
push edx
push 2
push esi
push dword [0x44cf98]
mov esi, ecx
call fcn.0043d020
mov ecx, esi
add esp, 0x14
cmp ecx, 1
mov edx, dword [ebp + 0x10]
sbb edx, 0
jl 0x43a791
cmp eax, 0xc000010a
jne 0x43a791
mov ebx, ecx
and ebx, 0x270f
mov esi, ecx
and esi, 0xffffd8f0
mov eax, esi
xor eax, 0xffffd8f0
mul ebx
mov dword [esp + 0xc], eax
mov edi, edx
mov eax, ecx
mov ecx, dword [ebp + 0x10]
mov edx, ecx
not edx
imul edx, ebx
add edi, edx
or eax, 0xffffd8f0
imul ecx, eax
mul esi
add edx, ecx
sub edx, esi
add eax, dword [esp + 0xc]
adc edx, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov dword [esp], 0xc0c7c6c5
mov dword [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax]
lea edi, [eax + 0x51]
and edi, esi
lea ebx, [eax + esi]
add ebx, 0x51
add edi, edi
sub ebx, edi
add bl, 0x6b
mov byte [esp + eax], bl
mov esi, eax
and esi, 1
xor eax, 1
lea eax, [eax + esi*2]
cmp eax, 8
jb 0x43a720
mov eax, dword [esp]
mov esi, dword [0x44cf90]
test esi, esi
je 0x43a791
xor edi, edi
mov ebx, dword [0x44cf94]
nop
nop
cmp dword [ebx + edi*8], 0x4e66b5a3
je 0x43a770
inc edi
cmp esi, edi
jne 0x43a760
jmp 0x43a791
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je 0x43a791
lea eax, [esp + 0x10]
push eax
push 0
push edx
push 3
push esi
push dword [0x44cf98]
call fcn.0043d020
add esp, 0x18
test eax, eax
js 0x43a838
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x43a838
mov dword [esp], 0xc0c7c6c5
mov dword [esp + 4], 0
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi]
lea edx, [esi + 0x51]
and edx, edi
lea ebx, [esi + edi]
add ebx, 0x51
add edx, edx
sub ebx, edx
add bl, 0x6b
mov byte [esp + esi], bl
mov edx, esi
and edx, 1
xor esi, 1
lea esi, [esi + edx*2]
cmp esi, 8
jb 0x43a7c0
mov esi, dword [0x44cf90]
test esi, esi
je 0x43a82e
mov edx, dword [esp]
xor ebx, ebx
mov edi, dword [0x44cf94]
nop
nop
cmp dword [edi + ebx*8], 0xb62b8d10
je 0x43a810
inc ebx
cmp esi, ebx
jne 0x43a800
jmp 0x43a82e
mov esi, dword [edi + ebx*8 + 4]
cmp esi, edx
je 0x43a82e
push ecx
push 1
push esi
push dword [0x44cf98]
mov edi, eax
call fcn.0043d020
mov eax, edi
add esp, 0x10
mov ecx, dword [esp + 8]
mov dword [ecx], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc