Function at 0x44393c
Capabilities:
Encrypt data using blowfish

Disassembly:
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x4439d4
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 3
ja case.default.0x4438cd
mov edx, dword [ebp - 0x20]
jmp dword [edx*4 + 0x443c77]
add ecx, 0x497d
sub ecx, 0x497d
jno 0x4438e2
jo 0x443905
pushf
lea eax, [eax + 0x5521]
lea eax, [eax - 0x5521]
and esp, 0xffffffff
xchg esi, esi
lea esp, [esp]
popf
jle 0x4438fe
xchg edx, ecx
xchg edx, ecx
jno 0x443905
mov ecx, 0x508458b
add byte [eax + eax], al
add byte [ecx + 0x77ebf445], cl
mov eax, dword [ebp + 8]
add eax, 0x400
mov dword [ebp - 0xc], eax
jmp case.default.0x4438cd
xor esi, dword [esp + 4]
xor esi, dword [esp + 4]
rol eax, 0x1c
rol eax, 4
jns 0x443922
jne 0x443934
pushf
jl 0x443928
cmc
jp 0x44392b
popf
mov ecx, ecx
jns 0x443931
je 0x443934
add eax, 0x89084d8b
dec ebp
hlt
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
jmp case.default.0x4438cd
test esp, 0x709b
xor ebx, dword [esp]
xor ebx, dword [esp]
jne 0x44394a
call fcn.0044394f
add esp, 4
jno 0x44395a
jno 0x443956
jo 0x44395a
mov ecx, 0x8558beb
mov edx, dword [ebp + 8]
add edx, 0xc48
mov dword [ebp - 0xc], edx
jmp case.default.0x4438cd
mov ebx, ebx
jl 0x44396c
and ecx, 0xffffffff
jbe 0x44397e
pushf
cmp eax, ecx
lea edi, [edi]
popf
jg 0x44397b
ja 0x44397e
mov esp, 0x508458b
add byte [eax], cl
add byte [eax], al
mov eax, dword [ebp + 8]
add eax, 0x800
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], 0
jmp 0x44399b
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x100
jge 0x4439cf
jae 0x4439a6
jl 0x4439b4
lea esp, [esp]
xchg esi, esi
jo 0x4439af
jo 0x4439b1
jge 0x4439b4
mov esi, 0xc1ec558b
loop 0x4439c4
mov edx, dword [ebp - 0x14]
shl edx, 0xa
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
mov edx, dword [edx + esi*4 + 0x4202c0]
xchg esp, eax
mov dl, 0xc0
add al, byte [edx]
mov dword [ecx + eax*4], edx
jmp 0x443992
jmp 0x4438a7
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
jmp 0x4439ed
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x443a86
mov dword [ebp - 0x18], 0
jmp 0x443a09
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 4
jge 0x443a44
mov edx, dword [ebp - 8]
shl edx, 8
mov dword [ebp - 8], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 8]
or edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp + 0x10]
jl 0x443a42
mov dword [ebp - 0x1c], 0
jmp 0x443a00
xchg ebx, ebx
jge 0x443a67
pushf
jle 0x443a4c
xchg ebx, edi
xchg ebx, edi
inc eax
dec eax
popf
lea edi, [edi]
lea edi, [edi + 0x2c03]
lea edi, [edi - 0x2c03]
jl 0x443a64
jl 0x443a67
lcall 0x9504, 0x8bec558b
loopne 0x443a85
mov edx, dword [ebp - 0x14]
mov eax, dword [edx*4 + 0x4216e0]
xor eax, dword [ebp - 8]
inc edx
add byte [ebx], dh
inc ebp
clc
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0xc00], eax
jmp 0x4439e4
push dword [edx]
jb 0x443a88
rol ebx, 0x19
ror ebx, 0x19
or esp, 0
jge 0x443a9f
mov edi, edi
nop
je 0x443a98
lea esp, [esp]
jl 0x443a9f
xor eax, 0xfc45c7e7
add byte [eax], al
add byte [eax], al
mov dword [ebp - 4], 0
cmp eax, dword [esp + 8]
xor esp, 0
jnp 0x443ac0
pushf
and edi, edi
rol esi, 0x12
rol esi, 0xe
popf
xchg ebx, ebx
jp 0x443ac0
mov ebp, 0xf045c7
add byte [eax], al
add bh, al
inc ebp
in al, dx
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
jmp 0x443ad9
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x443b36
or ebx, 0
xor edx, ebx
xor edx, ebx
jnp 0x443ae8
jp 0x443b00
pushf
xor ecx, 0
jle 0x443af1
cmp esp, 0x3bd1
popf
jge 0x443afb
jg 0x443afd
jnp 0x443b00
add eax, 0x51f04d8d
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00429029
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov dword [edx + ecx*4 + 0xc00], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov dword [edx + ecx*4 + 0xc04], eax
jmp 0x443ad0
mov dword [ebp - 0x14], 0
jmp 0x443b48
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 4
jge 0x443c6c
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 3
ja 0x443bee
mov dword [ebp - 0x18], 0
jmp 0x443c00
mov edx, dword [ebp - 0x18]
add edx, 2
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x100
jge 0x443c67
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00429029
add esp, 0xc
xor eax, dword [esp + 4]
xor eax, dword [esp + 4]
jp 0x443c27
cmp eax, dword [esp + 4]
neg esi
neg esi
jl 0x443c37
lea edi, [edi]
jge 0x443c37
ljmp 0x4d8b:0xe8458b79
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [ecx + eax*4], edx
rol edi, 0
cmc
rol edx, 0xe
ror edx, 0xe
jp 0x443c58
mov edx, edx
jg 0x443c53
jno 0x443c55
jnp 0x443c58
jmp 0x8c2c81e7
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax*4 + 4], edx
jmp 0x443bf7
jmp 0x443b3f
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc