Function at 0x7bb8c0
Capabilities:
Encrypt data using blowfish
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x796d8c]
push ebx
push esi
mov esi, 2
cmp eax, esi
push edi
jne 0x7bb4bb
cmp dword [0x796d80], 6
jne 0x7bb49d
mov ecx, dword [0x796cfc]
lea eax, [ebp - 4]
push eax
push ecx
call fcn.007a10b0
test eax, eax
je 0x7bb495
mov ecx, dword [ebp - 4]
xor eax, eax
test ecx, ecx
sete al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x796d8c], esi
jne 0x7bb4bb
cmp dword [0x796d80], 5
jb 0x7bb4bb
call fcn.007aaa10
test eax, eax
jne 0x7bb4bb
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x794a08]
test eax, eax
je 0x7bb887
push 0xa
lea edx, [ebp - 0x18]
push 0
push edx
call fcn.007b4640
add esp, 0xc
je 0x7bb4da
test esp, 0x24d8
jnp 0x7bb4e2
ja 0x7bb4f8
jle 0x7bb4e6
lea eax, [eax + 0x3a9c]
lea eax, [eax - 0x3a9c]
lea esp, [esp]
jbe 0x7bb4f8
mov ebp, 0x68ec45c6
mov byte [ebp - 0x14], 0x68
jo 0x7bb4fe
test dword [esp], ecx
rol ebx, 5
rol ebx, 0x1b
jno 0x7bb518
pushf
xchg edi, edi
popf
mov edx, edx
xchg esp, esp
mov ebx, ebx
jo 0x7bb518
ljmp 0x76:0x71eb45c6
mov byte [ebp - 0x15], 0x71
jbe 0x7bb51e
cmp edi, 0x58e3
jns 0x7bb526
lea edx, [edx]
je 0x7bb532
lea esp, [esp]
jp 0x7bb52f
jne 0x7bb532
mov edx, 0x79ef45c6
mov byte [ebp - 0x11], 0x79
shr esp, 0
jge 0x7bb53b
jbe 0x7bb543
js 0x7bb53f
ja 0x7bb543
mov ebx, 0xee45c6eb
arpl cx, ax
leave
push es
mov byte [ebp - 0x12], 0x63
ror ecx, 6
rol ecx, 6
add esi, dword [esp]
sub esi, dword [esp]
js 0x7bb55d
mov esp, esp
lea esp, [esp]
jns 0x7bb55d
mov esp, 0x78e945c6
mov byte [ebp - 0x17], 0x78
test edi, ecx
lea ebx, [ebx + 0x747b]
lea ebx, [ebx - 0x747b]
jb 0x7bb571
or eax, eax
jbe 0x7bb589
jns 0x7bb577
lea esp, [esp]
lea ebx, [ebx + 0x3260]
lea ebx, [ebx - 0x3260]
ja 0x7bb589
add eax, 0x77ed45c6
mov byte [ebp - 0x13], 0x77
jg 0x7bb58f
not eax
not eax
jae 0x7bb595
je 0x7bb59e
jno 0x7bb599
jne 0x7bb59b
jne 0x7bb59e
add eax, 0x65e845c6
mov byte [ebp - 0x18], 0x65
jns 0x7bb5a4
jb 0x7bb5ae
jl 0x7bb5a8
jno 0x7bb5aa
jae 0x7bb5ae
add eax, 0xf045c610
je 0x7bb624
mov byte [ebp - 0x10], 0x74
jno 0x7bb5b4
add byte [edx + 0xc], dh
jb 0x7bb5c2
xchg ebx, ebx
jp 0x7bb5ba
xchg ebx, edi
xchg ebx, edi
jae 0x7bb5c2
ljmp 0x8775:0xea45c6cd
mov byte [ebp - 0x16], 0x75
xchg ecx, edi
xchg ecx, edi
shr esp, 0
js 0x7bb5e6
pushf
std
cld
xchg ecx, ecx
add edi, dword [esp]
sub edi, dword [esp]
popf
xchg esp, esp
xchg esp, esp
xchg edi, edi
jns 0x7bb5e6
or dword [edx - 0x34d11b3], 0x4d88ca02
out dx, al
mov cl, byte [ebp - 0x12]
mov dl, 0xfc
add cl, dl
mov byte [ebp - 0x12], cl
lea edi, [edi + 0x3b2b]
lea edi, [edi - 0x3b2b]
jl 0x7bb5fe
test edx, esi
jl 0x7bb60a
mov ecx, ecx
lea edi, [edi]
jge 0x7bb60a
mov esp, 0xf05500f3
add byte [ebp - 0x10], dl
or ebx, 0
jbe 0x7bb61a
jmp 0x7bb614
jns 0x7bb616
ja 0x7bb61a
mov esi, 0xea4580cd
sti
add byte [ebp - 0x16], 0xfb
cld
jle 0x7bb640
pushf
jbe 0x7bb625
add cl, al
iretd
ror edi, 0x11
ror edi, 0xf
popf
lea esi, [esi]
xchg esi, esi
lea eax, [eax + 0x34d4]
lea eax, [eax - 0x34d4]
jg 0x7bb640
add eax, 0x87e85500
fucomi st(0)
add byte [eax], al
add byte [eax], al
add byte [ebp - 0x18], dl
xchg ebx, ebx
call 0x7bb64a
lea esp, [esp + 4]
shl esp, 0
cmp edi, 0x64a
jle 0x7bb66f
lea ebx, [ebx + 0x61a6]
lea ebx, [ebx - 0x61a6]
jo 0x7bb667
jo 0x7bb669
jns 0x7bb66b
jg 0x7bb66f
mov ecx, 0xec458a50
mov al, byte [ebp - 0x14]
mov cl, 0xfd
add al, cl
mov byte [ebp - 0x14], al
ror ebx, 0x16
ror ebx, 0xa
jno 0x7bb681
shl eax, 0
jbe 0x7bb68e
lea esp, [esp]
jb 0x7bb68b
ja 0x7bb68e
jmp 0x8e670392
add byte [ebp - 0x15], cl
lea edx, [edx + 0x3609]
lea edx, [edx - 0x3609]
jbe 0x7bb6b0
pushf
ror eax, 0x15
rol eax, 0x15
jns 0x7bb6a9
popf
jae 0x7bb6ad
ja 0x7bb6b0
mov ebp, 0xfbe94580
add byte [ebp - 0x17], 0xfb
cmp ebx, dword [esp + 0x10]
shl esp, 0
xchg edx, edx
jnp 0x7bb6bf
jo 0x7bb6cd
lea esp, [esp]
lea esi, [esi]
jnp 0x7bb6c8
jnp 0x7bb6ca
jno 0x7bb6cd
mov eax, 0x7fed4d00
add byte [ebx], dh
add byte [ebp - 0x13], cl
jg 0x7bb6d2
jae 0x7bb6d4
xor esp, 0
jmp 0x7bb6d9
jnp 0x7bb6f5
pushf
xor esp, 0
popf
xchg edi, edi
jno 0x7bb6e6
lea esi, [esi + 0xd37]
lea esi, [esi - 0xd37]
jp 0x7bb6f5
mov ebx, 0x6aef5d8a
add eax, 0x80f4458d
ret
mov bl, byte [ebp - 0x11]
push 5
lea eax, [ebp - 0xc]
add bl, 0xfe
push 0
push eax
mov byte [ebp - 0x11], bl
call fcn.007b4640
add esp, 0xc
add esp, 0
xor edi, ecx
xor edi, ecx
jne 0x7bb721
jg 0x7bb719
lea eax, [eax]
nop
jns 0x7bb71e
je 0x7bb721
mov ecx, 0x7af645c6
mov byte [ebp - 0xa], 0x7a
dec edi
inc edi
test dword [esp], eax
js 0x7bb736
jns 0x7bb72e
xchg ebx, esi
xchg ebx, esi
jns 0x7bb736
mov ebx, 0xf545c623
xor eax, 0xd0f7d0f7
mov byte [ebp - 0xb], 0x35
not eax
not eax
mov edx, edx
je 0x7bb769
pushf
call 0x7bb749
add esp, 4
jo 0x7bb74e
cmp edx, 0x4785
lea edi, [edi + 0x180b]
lea edi, [edi - 0x180b]
popf
mov edx, edx
jno 0x7bb766
jne 0x7bb769
sub eax, 0x75f745c6
mov byte [ebp - 9], 0x75
cmp eax, esi
lea ecx, [ecx + 0x10e6]
lea ecx, [ecx - 0x10e6]
lea esi, [esi]
js 0x7bb799
pushf
call 0x7bb786
lea esp, [esp + 4]
shl esp, 0
ror esi, 0
popf
jge 0x7bb794
jb 0x7bb796
jns 0x7bb799
mov ebx, 0x79f445c6
mov byte [ebp - 0xc], 0x79
xchg edx, ecx
xchg edx, ecx
rol edx, 0x19
ror edx, 0x19
xor esi, eax
xor esi, eax
jl 0x7bb7ad
jns 0x7bb7c7
pushf
xor ebx, 0
cmp edi, dword [esp + 0xc]
jp 0x7bb7ba
xchg edi, edi
popf
jno 0x7bb7c0
xchg esp, esp
mov esp, esp
js 0x7bb7c7
ljmp 0x79:0xfdf64580
add byte [ebp - 0xa], 0xfd
jns 0x7bb7cd
and esp, 0xffffffff
jns 0x7bb7eb
pushf
mov esi, esi
call 0x7bb7db
lea esp, [esp + 4]
test dword [esp], edi
popf
mov edi, edi
jne 0x7bb7e8
js 0x7bb7eb
mov esp, 0xb0f5558a
inc byte [edx]
ror byte [eax + 0x7df555], 1
mov dl, byte [ebp - 0xb]
mov al, 0xfe
add dl, al
mov byte [ebp - 0xb], dl
jge 0x7bb7f7
jo 0x7bb816
pushf
lea ecx, [ecx + 0x26f1]
sub ecx, 0x26f1
dec esi
inc esi
jge 0x7bb80b
popf
mov ecx, ecx
je 0x7bb811
je 0x7bb813
jno 0x7bb816
mov ebx, 0xfbf74580
add byte [ebp - 9], 0xfb
js 0x7bb81c
shl esp, 0
jno 0x7bb836
pushf
lea edi, [edi + 0x2e9d]
lea edi, [edi - 0x2e9d]
popf
xchg esp, esp
jo 0x7bb836
add eax, 0x8df45d8a
dec ebp
call 0x68cd9042
in al, dx
jo 0x7bb8bc
mov bl, byte [ebp - 0xc]
lea ecx, [ebp - 0x18]
add bl, al
push ecx
push 0x7970ec
mov byte [ebp - 0xc], bl
call fcn.007bad70
add esp, 8
cmp eax, 1
je 0x7bb890
add byte [eax + 0x24e8f45d], cl
cmc
invalid
lea edx, [ebp - 0xc]
push edx
push 0x7970ec
call fcn.007bad70
add esp, 8
cmp eax, 1
je 0x7bb890
push 0xa
lea eax, [ebp - 0x18]
push 0
push eax
call fcn.007b4640
push 5
lea ecx, [ebp - 0xc]
push 0
push ecx
call fcn.007b4640
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
lea edx, [ebp - 0x18]
push 0
push edx
call fcn.007b4640
push 5
lea eax, [ebp - 0xc]
push 0
push eax
call fcn.007b4640
add esp, 0x18
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
nop
nop
nop
nop
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
xor ebx, ebx
push 0x799954
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [ebp - 0x10], ebx
jmp 0x7bb8ea
mov ebx, dword [ebp - 0x10]
cmp ebx, 3
ja case.default.0x7bb8f3
jmp dword [ebx*4 + 0x7bbc58]
jo 0x7bb8fc
jg 0x7bb923
pushf
lea edx, [edx + 0x2820]
lea edx, [edx - 0x2820]
call 0x7bb911
add esp, 4
jbe 0x7bb916
rol edi, 7
rol edi, 0x19
popf
jg 0x7bb920
jle 0x7bb923
add eax, 0x508458b
add byte [eax + eax], al
add bl, ch
push 0x3b904a42
inc edx
dec edx
nop
cmp edi, ebx
mov eax, dword [ebp + 8]
add eax, 0x400
jmp 0x7bb995
inc edx
dec edx
nop
cmp edi, ebx
jg 0x7bb944
pushf
inc esi
dec esi
shr esp, 0
xchg ecx, eax
xchg ecx, eax
popf
ja 0x7bb941
jle 0x7bb944
mov ebx, 0x89084d8b
dec ebp
hlt
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
jmp case.default.0x7bb8f3
xor esi, edi
xor esi, edi
jbe 0x7bb960
jmp 0x7bb954
xchg ebx, ecx
xchg ebx, ecx
jge 0x7bb95a
lea ecx, [ecx]
ja 0x7bb960
sub eax, 0x8558b09
mov edx, dword [ebp + 8]
mov ebx, dword [ebp - 0x10]
add edx, 0xc48
mov dword [ebp - 0xc], edx
jmp case.default.0x7bb8f3
sub esp, 0
jb 0x7bb98d
pushf
ror esp, 0
xchg esi, esi
stc
test ecx, 0x2f78
popf
jmp 0x7bb988
jg 0x7bb98a
jae 0x7bb98d
call 0x583ff1c
add byte [eax], cl
add byte [eax], al
mov eax, dword [ebp + 8]
add eax, 0x800
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 0xc]
mov ecx, ebx
shl ecx, 0xa
add ecx, 0x797c04
mov edi, 0x100
je 0x7bb9ad
or esp, 0
add ebx, dword [esp]
sub ebx, dword [esp]
jae 0x7bb9b8
jae 0x7bb9d7
pushf
push eax
add eax, 0x7c0a
ror eax, 1
pop eax
shl esp, 0
or esp, 0
shl edx, 0
popf
js 0x7bb9d2
js 0x7bb9d4
jb 0x7bb9d7
mov eax, 0xc183118b
add al, 0x89
push ss
mov edx, dword [ecx]
add ecx, 4
mov dword [esi], edx
add esi, 4
dec edi
jne 0x7bb9ab
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, 4
mov dword [ebp - 0x10], eax
jl 0x7bb8e7
mov eax, dword [ebp + 8]
xor edx, edx
add eax, 0xc00
mov dword [ebp - 0x10], 0x798e18
mov dword [ebp - 0x18], eax
mov eax, 4
mov esi, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [edx + esi]
mov edi, ecx
mov ecx, dword [ebp - 0x14]
shl ecx, 8
or edi, ecx
mov ecx, dword [ebp + 0x10]
inc edx
mov dword [ebp - 0x14], edi
cmp edx, ecx
jl 0x7bba2c
xor edx, edx
dec eax
jne 0x7bba0d
lea ecx, [ecx + 0x7020]
lea ecx, [ecx - 0x7020]
cmc
lea ebx, [ebx + 0x253b]
lea ebx, [ebx - 0x253b]
ja 0x7bba54
xchg esi, eax
xchg esi, eax
xchg ebx, ebx
js 0x7bba50
jbe 0x7bba54
xor eax, 0xf0458b2f
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
add ecx, 4
mov ebx, dword [eax]
add eax, 4
xor edi, ebx
cmp eax, 0x798e60
mov dword [ecx - 4], edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], ecx
jl 0x7bba08
lea ecx, [ecx]
jno 0x7bba8b
pushf
ror edx, 0x12
ror edx, 0xe
popf
lea esi, [esi]
jle 0x7bba86
xchg ecx, eax
xchg ecx, eax
jo 0x7bba8b
mov edx, 0x4589c033
cld
xor eax, eax
mov dword [ebp - 4], eax
jge 0x7bba92
add ecx, 0x6581
sub ecx, 0x6581
nop
jae 0x7bbac0
pushf
call 0x7bbaa8
lea esp, [esp + 4]
call 0x7bbab1
lea esp, [esp + 4]
je 0x7bbab7
clc
popf
lea esp, [esp]
jb 0x7bbac0
lcall 0xf845, 0x89087d8b
mov edi, dword [ebp + 8]
mov dword [ebp - 8], eax
mov ebx, 9
lea esi, [edi + 0xc04]
lea edx, [edx + 0xdf]
lea edx, [edx - 0xdf]
jne 0x7bbae6
jge 0x7bbae1
jbe 0x7bbae3
je 0x7bbae6
mov eax, 0x8df8558d
inc ebp
cld
lea edx, [ebp - 8]
lea eax, [ebp - 4]
push edx
push eax
push edi
call fcn.007ac000
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov dword [esi - 4], ecx
mov dword [esi], edx
add esp, 0xc
add esi, 8
dec ebx
jne 0x7bbad1
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x7bbb15
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp + 8]
cmp eax, 3
ja case.default.0x7bbb1e
jmp dword [eax*4 + 0x7bbc68]
and esi, 0xffffffff
cmp ecx, edi
shl esp, 0
sub esi, 0
jno 0x7bbb46
pushf
shr esp, 0
jne 0x7bbb39
jnp 0x7bbb3b
jae 0x7bbb3d
popf
jne 0x7bbb41
jnp 0x7bbb43
jo 0x7bbb46
jmp 0x47c42d7
lea eax, [edi + 0x400]
mov dword [ebp + 0xc], 0x80
mov dword [ebp - 0xc], eax
mov ebx, eax
jmp 0x7bbbe5
cmp ebx, dword [esp + 4]
test dword [esp + 0xc], esi
jo 0x7bbb6f
jns 0x7bbb69
lea ecx, [ecx]
jno 0x7bbb6f
jmp 0xf4f9453f
mov dword [ebp - 0xc], edi
mov ebx, edi
mov dword [ebp + 0xc], 0x80
jmp 0x7bbbe5
and ecx, ecx
jae 0x7bbb89
jge 0x7bbb83
jno 0x7bbb85
jb 0x7bbb89
sub eax, 0x488f8d5c
or al, 0
add bh, al
inc ebp
or al, 0x80
add byte [eax], al
add byte [ecx - 0x26740bb3], cl
lea ecx, [edi + 0xc48]
mov dword [ebp + 0xc], 0x80
mov dword [ebp - 0xc], ecx
mov ebx, ecx
jmp 0x7bbbe5
push ecx
add ecx, 0x597e
ror ecx, 0x1f
pop ecx
jae 0x7bbbc7
pushf
js 0x7bbbae
sub edx, 0
rol edi, 0
popf
jg 0x7bbbb8
lea ebx, [ebx + 0x2f10]
lea ebx, [ebx - 0x2f10]
jb 0x7bbbc7
call 0x8b841156
jge 0x7bbbd5
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 8]
add edx, 0x800
mov dword [ebp - 0xc], edx
hlt
mov ebx, dword [ebp - 0xc]
mov dword [ebp + 0xc], 0x80
jmp 0x7bbbe5
mov edi, dword [ebp + 8]
lea eax, [ebp - 8]
lea ecx, [ebp - 4]
push eax
push ecx
push edi
call fcn.007ac000
add esp, 0xc
or esi, esi
rol edi, 9
ror edi, 9
jb 0x7bbc14
pushf
rol esp, 0
xor edx, dword [esp + 0xc]
xor edx, dword [esp + 0xc]
popf
je 0x7bbc11
jae 0x7bbc14
mov edi, 0x89fc558b
adc eax, ecx
in al, 0
mov edx, dword [ebp - 4]
mov dword [ebx], edx
shl esp, 0
je 0x7bbc28
jns 0x7bbc20
lea esp, [esp]
jp 0x7bbc25
jne 0x7bbc28
call 0x8a7401b7
inc ebx
add al, 0x8b
inc ebp
or al, 0x83
ret
mov eax, dword [ebp - 8]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0xc]
add ebx, 8
dec eax
mov dword [ebp + 0xc], eax
jne 0x7bbbe2
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, 4
mov dword [ebp - 0x10], eax
jl 0x7bbb0f
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc