Function at 0x46009f
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 0x460142
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 3
ja case.default.0x45fffc
mov edx, dword [ebp - 0x20]
jmp dword [edx*4 + 0x46043b]
add ebx, 0
push edx
add edx, 0x11c2
ror edx, 0xd
pop edx
rol eax, 0
ja 0x46002a
pushf
or ecx, ecx
lea esp, [esp]
ja 0x46001f
popf
xchg edx, edx
jne 0x460025
jle 0x460027
jbe 0x46002a
add eax, 0x508458b
add byte [eax + eax], al
add byte [ecx - 0x6e160bbb], cl
add byte [eax], al
add cl, al
shl eax, 0
mov eax, dword [ebp + 8]
add eax, 0x400
mov dword [ebp - 0xc], eax
jmp case.default.0x45fffc
shl eax, 0
ror esi, 1
ror esi, 0x1f
add edi, 0
js 0x46005c
pushf
call fcn.0046004e
lea esp, [esp + 4]
rol eax, 0
popf
jae 0x460059
jns 0x46005c
mov edi, 0x89084d8b
dec ebp
hlt
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
jmp case.default.0x45fffc
shr esp, 0
js 0x460069
xor edi, 0x1aa6
xor edi, 0x1aa6
add esp, 0
jbe 0x460091
pushf
jns 0x46007e
rol esi, 0
xchg esi, ecx
xchg esi, ecx
shr ecx, 0
popf
xchg esp, esp
jp 0x46008e
ja 0x460091
mov ebx, 0x8108558b
ret 0xc48
mov edx, dword [ebp + 8]
add edx, 0xc48
mov dword [ebp - 0xc], edx
jmp case.default.0x45fffc
shr edi, 0
jle 0x4600c0
pushf
or esp, 0
lea edx, [edx + 0xfc1]
lea edx, [edx - 0xfc1]
popf
ja 0x4600b9
jg 0x4600bb
mov ecx, ecx
jg 0x4600c0
call 0x54e464f
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 0x4600dd
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x100
jge 0x46013d
lea eax, [eax + 0x745c]
sub eax, 0x745c
sub edi, 0
push eax
add eax, 0x6da
ror eax, 0xa
pop eax
jae 0x460122
pushf
ror esp, 0
jo 0x460107
add edx, 0
shr esp, 0
popf
mov esp, esp
js 0x460113
lea edi, [edi + 0x9ec]
lea edi, [edi - 0x9ec]
jb 0x460122
mov edx, 0xc1ec558b
loop 0x460132
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 + 0x453308]
xchg esp, eax
mov dl, 8
xor eax, dword [ebp]
mov dword [ecx + eax*4], edx
jmp 0x4600d4
jmp 0x45ffd6
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
jmp 0x46015b
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x460207
mov dword [ebp - 0x18], 0
jmp 0x460177
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 4
jge 0x4601b2
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 0x4601b0
mov dword [ebp - 0x1c], 0
jmp 0x46016e
lea esp, [esp]
lea edi, [edi + 0x380e]
lea edi, [edi - 0x380e]
xor esi, 0x515a
xor esi, 0x515a
push ecx
add ecx, 0x1dbd
ror ecx, 9
pop ecx
jle 0x4601e8
pushf
cmp edi, dword [esp]
std
cld
popf
xchg ebx, eax
xchg ebx, eax
jg 0x4601e8
xor eax, 0x8bec558b
add al, 0x95
nop
xor al, byte [ebp]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx*4 + 0x453290]
xor eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0xc00], eax
jmp 0x460152
push esi
add esi, 0x117
ror esi, 0x1c
pop esi
lea esi, [esi + 0x4268]
lea esi, [esi - 0x4268]
jl 0x460236
pushf
or ebx, 0
cld
add ecx, 0
test eax, ecx
popf
mov esp, esp
xchg edi, edi
jg 0x460233
jge 0x460236
mov esp, 0xfc45c7
add byte [eax], al
add byte [edi], bh
mov dword [ebp - 4], 0
jg 0x46023f
sub esp, 0
rol eax, 0
cmp ebx, dword [esp]
jp 0x460257
pushf
ror esp, 0
popf
nop
xchg edi, edi
jnp 0x460257
mov edx, 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 0x460270
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x4602cd
lea esi, [esi + 0x5225]
lea esi, [esi - 0x5225]
ja 0x460297
jge 0x460286
lea ebx, [ebx + 0x1f87]
lea ebx, [ebx - 0x1f87]
mov edi, edi
jbe 0x460297
mov eax, 0x51f04d8d
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0048361f
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 0x460267
mov dword [ebp - 0x14], 0
jmp 0x4602df
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 4
jge 0x460430
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 3
ja case.default.0x4602fc
mov eax, dword [ebp - 0x24]
jmp dword [eax*4 + 0x46044b]
rol esi, 0x1b
rol esi, 5
js 0x46030b
ror esp, 0
jno 0x460310
jae 0x460324
pushf
test esp, 0x5e2b
sub esp, 0
popf
jmp 0x460321
jb 0x460324
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.0x4602fc
cmp esp, 0x370f
je 0x46033d
lea esi, [esi]
jb 0x46034a
xchg ebx, ebx
mov esp, esp
mov esp, esp
jae 0x46034a
ljmp 0xf455:0x8908558b
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], edx
jmp case.default.0x4602fc
jl 0x460354
test esi, 0x38e6
ror ecx, 0x18
rol ecx, 0x18
sub ecx, 0
jp 0x46037c
pushf
cmp ebx, 0x2f03
js 0x46036f
cmp edx, dword [esp]
or eax, eax
popf
jl 0x460378
nop
jnp 0x46037c
mov eax, 0x508458b
dec eax
or al, 0
add byte [ecx + 0x2cebf445], cl
mov eax, dword [ebp + 8]
add eax, 0xc48
mov dword [ebp - 0xc], eax
jmp case.default.0x4602fc
jge 0x46038b
ja 0x4603a9
pushf
test dword [esp + 8], ecx
or edx, edx
nop
call 0x46039b
add esp, 4
popf
jg 0x4603a2
xchg esi, ebx
xchg esi, ebx
jbe 0x4603a9
mov edi, 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 0x4603c7
mov edx, dword [ebp - 0x18]
add edx, 2
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x100
jge 0x46042b
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0048361f
add esp, 0xc
and ecx, ecx
jge 0x4603e8
test esp, 0x72cc
sub esp, 0
jg 0x4603fe
mov edi, edi
xchg esp, esp
js 0x4603f9
mov esp, esp
jle 0x4603fe
add 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
jge 0x46040c
jg 0x46041c
pushf
rol esp, 0
popf
jl 0x460417
jg 0x460419
jle 0x46041c
xor eax, 0x8be8458b
dec ebp
hlt
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax*4 + 4], edx
jmp 0x4603be
jmp 0x4602d6
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc