Function at 0x84e00a
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 0x84e077
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 3
ja case.default.0x84df9f
mov edx, dword [ebp - 0x20]
jmp dword [edx*4 + 0x84e315]
jbe 0x84dfa8
add edi, 0
call fcn.0084dfb0
lea esp, [esp + 4]
or eax, eax
jo 0x84dfc1
mov ecx, ecx
jo 0x84dfbc
jnp 0x84dfbe
jno 0x84dfc1
xor eax, 0x508458b
add byte [eax + eax], al
add byte [ecx + 0x61ebf445], cl
mov eax, dword [ebp + 8]
add eax, 0x400
mov dword [ebp - 0xc], eax
jmp case.default.0x84df9f
shr edi, 0
js 0x84dfdd
jae 0x84dfd5
jae 0x84dfd7
jp 0x84dfd9
jns 0x84dfdd
ljmp 0x4d89:0x84d8b77
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
jmp case.default.0x84df9f
push edi
pop edi
jae 0x84dffc
jo 0x84dfeb
lea edi, [edi + 0x403]
lea edi, [edi - 0x403]
jbe 0x84dff9
jb 0x84dffc
add eax, 0x8108558b
ret 0xc48
mov edx, dword [ebp + 8]
add edx, 0xc48
mov dword [ebp - 0xc], edx
jmp case.default.0x84df9f
push eax
add eax, 0x7c66
ror eax, 3
pop eax
cmp esp, 0x3b3a
jo 0x84e024
jmp 0x84e01e
jnp 0x84e020
jno 0x84e024
xor eax, 0x8458b5d
mov eax, dword [ebp + 8]
add eax, 0x800
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], 0
jmp 0x84e041
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x100
jge 0x84e072
stc
push edx
pop edx
push esi
pop esi
cmc
jb 0x84e057
jp 0x84e054
jae 0x84e057
jmp 0xc27135e6
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 + 0x823ce8]
mov dword [ecx + eax*4], edx
jmp 0x84e038
jmp 0x84df79
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
jmp 0x84e090
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x84e124
mov dword [ebp - 0x18], 0
jmp 0x84e0ac
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 4
jge 0x84e0e7
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 0x84e0e5
mov dword [ebp - 0x1c], 0
jmp 0x84e0a3
xor eax, 0x37e5
xor eax, 0x37e5
jle 0x84e105
pushf
js 0x84e0f7
jo 0x84e0f9
xchg ecx, ecx
sub esp, 0
popf
lea ecx, [ecx]
jg 0x84e105
lcall 0x9504, 0x8bec558b
mov eax, 0x33008232
inc ebp
clc
mov edx, dword [ebp - 0x14]
mov eax, dword [edx*4 + 0x8232b8]
xor eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0xc00], eax
jmp 0x84e087
nop
add ecx, 0
test ecx, 0x1433
jb 0x84e142
pushf
or ecx, ecx
or ebx, ebx
nop
xchg ebx, ebx
popf
ja 0x84e13d
jnp 0x84e13f
jae 0x84e142
ljmp 0:0xfc45c7
mov dword [ebp - 4], 0
ror edx, 0x1f
rol edx, 0x1f
je 0x84e15d
mov eax, eax
xchg esi, eax
xchg esi, eax
ja 0x84e157
jb 0x84e159
jne 0x84e15d
lcall 0, 0xf045c7c9
add byte [eax], al
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
jmp 0x84e176
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x84e1c2
shr esp, 0
je 0x84e18c
nop
jo 0x84e184
nop
ja 0x84e187
jne 0x84e18c
mov esi, 0x4d8d333c
invalid
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0082a81c
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 0x84e16d
mov dword [ebp - 0x14], 0
jmp 0x84e1d4
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 4
jge 0x84e30a
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 3
ja case.default.0x84e1f1
mov eax, dword [ebp - 0x24]
jmp dword [eax*4 + 0x84e325]
test edi, esi
ja 0x84e211
pushf
jl 0x84e200
and ebx, 0xffffffff
xchg edx, ebx
xchg edx, ebx
shr esp, 0
popf
jno 0x84e20e
jbe 0x84e211
mov eax, 0x81084d8b
rol dword [eax], 4
add byte [eax], al
mov ecx, dword [ebp + 8]
add ecx, 0x400
mov dword [ebp - 0xc], ecx
jmp case.default.0x84e1f1
jg 0x84e221
jnp 0x84e223
xchg ebx, ebx
nop
jp 0x84e239
pushf
jo 0x84e22c
lea ebx, [ebx]
nop
add esp, 0
popf
jb 0x84e236
jnp 0x84e239
mov eax, 0x8908558b
push ebp
hlt
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], edx
jmp case.default.0x84e1f1
cmp edx, esi
test edx, 0x7b51
jo 0x84e251
lea esp, [esp]
jno 0x84e251
mov ebp, 0x508458b
dec eax
or al, 0
add byte [ecx + 0x1febf445], cl
mov eax, dword [ebp + 8]
add eax, 0xc48
mov dword [ebp - 0xc], eax
jmp case.default.0x84e1f1
lea edx, [edx + 0x6748]
sub edx, 0x6748
jae 0x84e271
jbe 0x84e26e
jb 0x84e271
mov ebp, 0x81084d8b
rol dword [eax], 8
add byte [eax], al
mov ecx, dword [ebp + 8]
add ecx, 0x800
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], 0
jmp 0x84e28f
mov edx, dword [ebp - 0x18]
add edx, 2
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x100
jge 0x84e305
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0082a81c
add esp, 0xc
call 0x84e2b1
add esp, 4
je 0x84e2d1
pushf
or ebx, ebx
xchg esi, ebx
xchg esi, ebx
or edi, edi
ja 0x84e2c2
popf
jns 0x84e2c6
xchg edx, edi
xchg edx, edi
xchg edx, ebx
xchg edx, ebx
jne 0x84e2d1
xor eax, 0x8be8458b
dec ebp
hlt
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [ecx + eax*4], edx
nop
xor edi, 0x5926
xor edi, 0x5926
jge 0x84e2ec
xchg esi, esi
jo 0x84e2f6
jns 0x84e2f2
jno 0x84e2f6
ljmp 0x4d8b:0xe8458b20
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax*4 + 4], edx
jmp 0x84e286
jmp 0x84e1cb
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc