Function at 0x43b990
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x4d88db
mov eax, dword fs:[0]
push eax
mov eax, 0x1080
call fcn.00468d20
mov eax, dword [0x5808f0]
xor eax, esp
mov dword [esp + 0x107c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5808f0]
xor eax, esp
push eax
lea eax, [esp + 0x1094]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x10a4]
xor ebp, ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], ebp
mov byte [esp + 0x17], 0
mov dword [esp + 0x34], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], vtable.dwcl::Blowfish.0
xor eax, eax
mov ecx, ebx
mov dword [esp + 0x109c], ebp
mov byte [esp + 0x1088], 0
mov dword [esp + 0x1089], eax
mov word [esp + 0x108d], ax
mov byte [esp + 0x108f], al
call fcn.00424be0
mov esi, eax
add esi, 0xfffffdd8
mov edi, edx
adc edi, 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jne 0x43ba42
cmp esi, 0x2000
jb 0x43ba5c
cmp edi, ebp
ja 0x43ba4e
cmp esi, 0x4268
jbe 0x43ba53
mov byte [esp + 0x17], 1
mov esi, 0x2000
xor edi, edi
jmp 0x43ba69
mov eax, esi
and eax, 7
sub esi, eax
mov dword [esp + 0x20], eax
sbb edi, ebp
push 0x2000
call fcn.004691cd
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x43ba88
mov ecx, ebx
call fcn.0043a470
jmp 0x43bc16
mov eax, dword [esp + 0x18]
push 0
add eax, 0x24
push 0x14
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30], eax
call fcn.004014d0
cmp dword [esp + 0x3c], 0
jne 0x43bac1
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
lea ecx, [esp + 0x30]
call edx
push eax
call fcn.004691cd
add esp, 4
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
lea ecx, [esp + 0x30]
call edx
mov ecx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x38
push eax
push ecx
call fcn.00468d50
mov edx, esi
add esp, 0xc
or edx, edi
je 0x43bb11
push edi
push esi
push ebp
push 0
push 0
mov ecx, ebx
call fcn.00424750
push esi
push ebp
push ebp
lea ecx, [esp + 0x3c]
call fcn.004036a0
push edi
push esi
push ebp
push 0
push 0
mov ecx, ebx
call fcn.00424860
cmp byte [esp + 0x17], 0
je 0x43bb5c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
push edi
sub eax, 0x2228
push esi
sbb ecx, 0
push ebp
push ecx
mov dword [esp + 0x2c], ecx
push eax
mov ecx, ebx
mov dword [esp + 0x2c], eax
call fcn.00424750
push esi
push ebp
push ebp
lea ecx, [esp + 0x3c]
call fcn.004036a0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push edi
push esi
push ebp
push eax
push ecx
mov ecx, ebx
call fcn.00424860
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x43bbff
xor eax, eax
push eax
push ecx
push ebp
push edi
push esi
mov ecx, ebx
call fcn.00424750
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], edx
call fcn.00416da0
push eax
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x1090]
push ecx
call fcn.00468d50
mov edx, dword [esp + 0x30]
add esp, 0xc
push 1
push 0x14
push edx
lea ecx, [esp + 0x3c]
call fcn.004014d0
lea eax, [esp + 0x1088]
mov ecx, eax
push eax
push ecx
lea ecx, [esp + 0x38]
call fcn.004036f0
mov edx, dword [esp + 0x20]
test edx, edx
jbe 0x43bbf1
lea ecx, [esp + 0x1088]
mov eax, ebp
sub ecx, ebp
mov dword [esp + 0x18], edx
lea ebx, [ebx]
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
sub dword [esp + 0x18], 1
jne 0x43bbe0
mov edx, dword [esp + 0x20]
xor eax, eax
push eax
push edx
push ebp
push edi
push esi
mov ecx, ebx
call fcn.00424860
push 0
push 0x228
mov ecx, ebx
call fcn.00424c20
push ebp
call fcn.004690f0
add esp, 4
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], vtable.dwcl::AbstractCipher.0
test eax, eax
je 0x43bc37
push eax
call fcn.004690f0
add esp, 4
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x43bc48
push eax
call fcn.004690f0
add esp, 4
mov ecx, dword [esp + 0x1094]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x107c]
xor ecx, esp
call fcn.004690b5
add esp, 0x108c
ret 8