Function at 0x48595f
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 0x485a46
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 3
ja case.default.0x485958
mov edx, dword [ebp - 0x20]
jmp dword [edx*4 + 0x485d3b]
xchg ecx, eax
xchg ecx, eax
add ebx, dword [esp]
sub ebx, dword [esp]
and edx, edx
xor ecx, edi
xor ecx, edi
jp 0x48597c
pushf
jl 0x485973
popf
jp 0x485977
je 0x485979
jnp 0x48597c
lcall 0x400, 0x508458b
add byte [eax], al
mov eax, dword [ebp + 8]
add eax, 0x400
mov dword [ebp - 0xc], eax
jmp case.default.0x485958
inc ebx
dec ebx
dec edi
inc edi
jae 0x48598f
jg 0x4859ad
pushf
xchg esp, esp
neg eax
neg eax
call fcn.0048599e
lea esp, [esp + 4]
popf
js 0x4859a6
xchg edi, edi
jo 0x4859aa
jle 0x4859ad
mov ebp, 0x89084d8b
dec ebp
hlt
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
jmp case.default.0x485958
ror esp, 0
jge 0x4859ba
std
cld
jnp 0x4859c5
nop
jno 0x4859c1
jp 0x4859c5
mov esi, 0x8558b45
mov edx, dword [ebp + 8]
add edx, 0xc48
mov dword [ebp - 0xc], edx
jmp case.default.0x485958
test dword [esp + 0x10], edi
jo 0x4859df
jg 0x4859db
jno 0x4859df
mov edx, 0x8458bef
mov eax, dword [ebp + 8]
add eax, 0x800
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], 0
jmp 0x4859fc
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x100
jge 0x485a41
not esi
not esi
jbe 0x485a0b
jb 0x485a26
lea ecx, [ecx + 0x59cd]
lea ecx, [ecx - 0x59cd]
jne 0x485a1b
xchg esi, edi
xchg esi, edi
je 0x485a21
jae 0x485a26
lcall 0xc1ec, 0x558b107a
loop 0x485a36
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 + 0x472738]
mov dword [ecx + eax*4], edx
jmp 0x4859f3
xchg esp, eax
mov dl, 0x38
daa
inc edi
add byte [ecx - 0x4d147eec], cl
jmp 0x485932
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
jmp 0x485a5f
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x485b08
mov dword [ebp - 0x18], 0
jmp 0x485a7b
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 4
jge 0x485ab6
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 0x485ab4
mov dword [ebp - 0x1c], 0
jmp 0x485a72
and eax, 0xffffffff
lea eax, [eax + 0x1715]
lea eax, [eax - 0x1715]
xor eax, dword [esp]
xor eax, dword [esp]
xor edi, dword [esp]
xor edi, dword [esp]
jl 0x485ae9
pushf
mov edi, edi
jmp 0x485ad9
call 0x485ade
lea esp, [esp + 4]
popf
lea ebx, [ebx]
jge 0x485ae9
mov ebp, 0x8bec558b
add al, 0x95
test al, 0x25
inc edi
add byte [ebx], dh
inc ebp
clc
mov edx, dword [ebp - 0x14]
mov eax, dword [edx*4 + 0x4725a8]
xor eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0xc00], eax
jmp 0x485a56
shr edi, 0
jg 0x485b1e
js 0x485b0f
lea ebx, [ebx + 0xc8e]
lea ebx, [ebx - 0xc8e]
jle 0x485b1e
mov edx, 0xfc45c7
add byte [eax], al
add bl, ch
add byte [ecx + 0x78e3f9], al
add byte [ebx + 0x660f7fe4], cl
pushfd
mov dword [ebp - 4], 0
jmp 0x485b27
cmp ecx, 0x78e3
mov esp, esp
jg 0x485b40
pushf
jo 0x485b35
popf
jmp 0x485b39
mov esp, esp
ja 0x485b3d
jle 0x485b40
sub eax, 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 0x485b59
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x485ba9
neg eax
neg eax
shr ecx, 0
stc
or eax, 0
jo 0x485b73
jle 0x485b6e
jno 0x485b70
jno 0x485b73
xor eax, 0x51f04d8d
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0047ce81
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 0x485b50
mov dword [ebp - 0x14], 0
jmp 0x485bbb
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 4
jge 0x485d30
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 3
ja case.default.0x485bd8
mov eax, dword [ebp - 0x24]
jmp dword [eax*4 + 0x485d4b]
jb 0x485be1
je 0x485bf3
pushf
xor edx, 0
jle 0x485bea
popf
xchg edx, edx
xchg ecx, ecx
jne 0x485bf3
lcall 0xc1, 0x81084d8b
add al, 0
add byte [ecx - 0x7d160bb3], cl
add byte [eax], al
add byte [edi + 0x4f], al
inc edi
dec edi
mov ecx, dword [ebp + 8]
add ecx, 0x400
mov dword [ebp - 0xc], ecx
jmp case.default.0x485bd8
inc edi
dec edi
and edi, edi
jne 0x485c26
pushf
shr esp, 0
cmp esp, 0x3aa1
popf
lea ecx, [ecx + 0x4a21]
lea ecx, [ecx - 0x4a21]
je 0x485c26
mov ebx, 0x8908558b
push ebp
hlt
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], edx
jmp case.default.0x485bd8
sub ebx, 0
jno 0x485c4c
pushf
rol edx, 0xe
rol edx, 0x12
shr ebx, 0
inc ebx
dec ebx
nop
popf
lea edx, [edx]
jb 0x485c47
jns 0x485c49
jo 0x485c4c
add eax, 0x508458b
dec eax
or al, 0
add byte [ecx + 0x2debf445], cl
mov eax, dword [ebp + 8]
add eax, 0xc48
mov dword [ebp - 0xc], eax
jmp case.default.0x485bd8
jo 0x485c5b
test edi, edx
cmp esp, 0x4fea
xor edi, ebx
xor edi, ebx
jp 0x485c7a
pushf
xchg esp, esp
or edx, edx
popf
lea esp, [esp]
nop
mov esp, esp
jnp 0x485c7a
mov esi, 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 0x485c98
mov edx, dword [ebp - 0x18]
add edx, 2
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x100
jge 0x485d2b
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0047ce81
add esp, 0xc
mov edx, edx
shl edx, 0
call 0x485cc3
lea esp, [esp + 4]
jae 0x485cc9
jle 0x485cef
pushf
lea edx, [edx + 0x15ad]
sub edx, 0x15ad
add edx, 0x2df6
sub edx, 0x2df6
shl esp, 0
popf
jl 0x485cec
jg 0x485cef
mov ecx, 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
rol esi, 0x11
rol esi, 0xf
test esi, ebx
add eax, 0
je 0x485d19
pushf
jae 0x485d0c
lea esi, [esi]
popf
lea edi, [edi]
jno 0x485d14
je 0x485d16
jne 0x485d19
mov ecx, 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 0x485c8f
jmp 0x485bb2
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc