Function at 0x43b480
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov edi, ecx
mov dword [esp + 8], 0
mov dword [esp], 0xf0fffefd
mov byte [esp + 4], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0x55
xor cl, byte [esp + eax]
add cl, 0x57
mov byte [esp + eax], cl
inc eax
cmp eax, 5
jne 0x43b4a0
mov ebx, dword [esp]
mov eax, dword [0x44cf3c]
test eax, eax
je 0x43b506
xor ecx, ecx
mov edx, dword [0x44cf40]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x61813e67
je 0x43b4e0
inc ecx
cmp eax, ecx
jne 0x43b4d0
jmp 0x43b506
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebx
je 0x43b506
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 5
push 0x10
push eax
push dword [0x44cf44]
call fcn.0043df80
add esp, 0x1c
mov ebx, eax
mov dword [esp], 0xd392919c
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor eax, eax
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax]
lea ecx, [eax + 0x45de2be4]
xor ecx, edx
lea edx, [ecx - 0x5d56db75]
not ecx
add ecx, ecx
and ecx, 2
mov esi, ecx
and esi, edx
or ecx, edx
xor ecx, 1
add ecx, esi
mov byte [esp + eax], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 7
jb 0x43b520
cmp ebx, dword [esp]
jne 0x43b6d4
mov dword [esp + 0x10], edi
push dword [esp + 8]
call fcn.0043b300
add esp, 4
mov edi, dword [esp + 8]
mov dword [esp], 0xf0fffefd
mov byte [esp + 4], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add cl, 0x55
xor cl, byte [esp + edx]
add cl, 0x57
mov byte [esp + edx], cl
inc edx
cmp edx, 5
jne 0x43b590
mov ebx, dword [esp]
mov edx, dword [0x44cf3c]
test edx, edx
je 0x43b5f5
xor ebp, ebp
mov esi, dword [0x44cf40]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + ebp*8], 0x61813e67
je 0x43b5d0
inc ebp
cmp edx, ebp
jne 0x43b5c0
jmp 0x43b5f5
mov edx, dword [esi + ebp*8 + 4]
cmp edx, ebx
je 0x43b5f5
push 0
push edi
push eax
push 5
push 0x10
push edx
push dword [0x44cf44]
mov esi, eax
call fcn.0043df80
add esp, 0x1c
mov ebx, eax
mov eax, esi
test ebx, ebx
js 0x43b6cb
mov dword [esp], 0xc3020325
mov ecx, 0x92b4cd80
mov edx, 0x6d4b327f
nop
nop
movzx edi, byte [esp + ecx + 0x6d4b3280]
mov esi, ecx
xor esi, edi
or esi, edx
mov ebp, esi
not ebp
and esi, 2
mov ebx, ebp
and ebx, 0x81
imul ebx, esi
mov esi, ebp
and esi, 2
or ebp, 2
imul ebp, esi
add ebp, ebx
mov esi, ebp
xor esi, ecx
and ebp, edx
add esi, edi
add esi, 0x2277fc7f
add ebp, ebp
mov edi, esi
sub edi, ebp
and esi, 1
xor edi, 1
lea ebx, [edi + esi*2]
mov byte [esp + ecx + 0x6d4b3280], bl
inc ecx
dec edx
cmp ecx, 0x92b4cd84
jne 0x43b610
mov ecx, dword [esp]
mov dword [esp + 0xc], ecx
mov esi, dword [eax]
mov ecx, eax
mov ebx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edx + ebp]
movzx edi, word [ebx + ebp]
test si, si
je 0x43b6a5
add ebp, 2
cmp si, di
je 0x43b690
cmp si, di
je 0x43b6b6
mov esi, dword [ecx]
test esi, esi
jne 0x43b680
mov ebx, dword [esp + 0xc]
jmp 0x43b6cb
mov edx, dword [ecx + 0x44]
mov esi, dword [esp + 0x10]
mov dword [esi + 8], edx
mov ecx, dword [ecx + 0xdc]
mov dword [esi + 0xc], ecx
xor ebx, ebx
push eax
call fcn.0043b400
add esp, 4
mov eax, ebx
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 4