Function at 0x5b37e0
Capabilities:
Encrypt data using chaskey
Packed with generic packer

Disassembly:
pushal
mov esi, 0x445015
lea edi, [esi - 0x44015]
lea eax, [edi + 0x19805c]
push dword [eax]
mov dword [eax], 0x91e9d04a
push eax
push edi
mov ebp, esp
lea ebx, [esp - 0x3e80]
xor eax, eax
push eax
cmp esp, ebx
jne 0x5b3807
inc esi
inc esi
push ebx
push 0x1b1290
push edi
add ebx, 4
push ebx
push 0x16e7bf
push esi
add ebx, 4
push ebx
push eax
mov dword [ebx], 3
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov edx, dword [esp + 0x90]
mov dword [esp + 0x74], 0
mov byte [esp + 0x73], 0
mov ebp, dword [esp + 0x9c]
lea eax, [edx + 4]
mov dword [esp + 0x78], eax
mov eax, 1
movzx ecx, byte [edx + 2]
mov ebx, eax
shl ebx, cl
mov ecx, ebx
dec ecx
mov dword [esp + 0x6c], ecx
movzx ecx, byte [edx + 1]
shl eax, cl
dec eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xa8]
movzx esi, byte [edx]
mov dword [ebp], 0
mov dword [esp + 0x60], 0
mov dword [eax], 0
mov eax, 0x300
mov dword [esp + 0x64], esi
mov dword [esp + 0x5c], 1
mov dword [esp + 0x58], 1
mov dword [esp + 0x54], 1
mov dword [esp + 0x50], 1
movzx ecx, byte [edx + 1]
add ecx, esi
shl eax, cl
lea ecx, [eax + 0x736]
cmp dword [esp + 0x74], ecx
jae 0x5b38dc
mov eax, dword [esp + 0x78]
mov word [eax], 0x400
add eax, 2
loop 0x5b38d2
mov ebx, dword [esp + 0x94]
xor edi, edi
mov dword [esp + 0x48], 0xffffffff
mov edx, ebx
add edx, dword [esp + 0x98]
mov dword [esp + 0x4c], edx
xor edx, edx
cmp ebx, dword [esp + 0x4c]
je 0x5b4282
movzx eax, byte [ebx]
shl edi, 8
inc edx
inc ebx
or edi, eax
cmp edx, 4
jle 0x5b38fc
mov ecx, dword [esp + 0xa4]
cmp dword [esp + 0x74], ecx
jae 0x5b428a
mov esi, dword [esp + 0x74]
and esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x78]
shl eax, 4
mov dword [esp + 0x44], esi
add eax, esi
cmp dword [esp + 0x48], 0xffffff
lea ebp, [edx + eax*2]
ja 0x5b3964
cmp ebx, dword [esp + 0x4c]
je 0x5b4282
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
mov eax, dword [esp + 0x48]
mov dx, word [ebp]
shr eax, 0xb
movzx ecx, dx
imul eax, ecx
cmp edi, eax
jae 0x5b3b5a
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, ecx
mov cl, byte [esp + 0x64]
sar eax, 5
mov esi, 1
lea eax, [edx + eax]
movzx edx, byte [esp + 0x73]
mov word [ebp], ax
mov eax, dword [esp + 0x74]
and eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x78]
shl eax, cl
mov ecx, 8
sub ecx, dword [esp + 0x64]
sar edx, cl
add eax, edx
imul eax, eax, 0x600
cmp dword [esp + 0x60], 6
lea eax, [ebp + eax + 0xe6c]
mov dword [esp + 0x14], eax
jle 0x5b3aa1
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x5c]
mov edx, dword [esp + 0xa0]
movzx eax, byte [edx + eax]
mov dword [esp + 0x40], eax
shl dword [esp + 0x40], 1
mov ecx, dword [esp + 0x40]
lea edx, [esi + esi]
mov ebp, dword [esp + 0x14]
and ecx, 0x100
cmp dword [esp + 0x48], 0xffffff
lea eax, [ebp + ecx*2]
mov dword [esp + 0x3c], ecx
lea ebp, [eax + edx]
ja 0x5b3a30
cmp ebx, dword [esp + 0x4c]
je 0x5b4282
shl dword [esp + 0x48], 8
movzx eax, byte [ebx]
shl edi, 8
inc ebx
or edi, eax
mov eax, dword [esp + 0x48]
mov cx, word [ebp + 0x200]
shr eax, 0xb
movzx esi, cx
imul eax, esi
cmp edi, eax
jae 0x5b3a6b
mov dword [esp + 0x48], eax
mov eax, 0x800
sub eax, esi
mov esi, edx
sar eax, 5
cmp dword [esp + 0x3c], 0
lea eax, [ecx + eax]
mov word [ebp + 0x200], ax
je 0x5b3a8b
jmp 0x5b3a99
sub dword [esp + 0x48], eax
sub edi, eax
mov eax, ecx
lea esi, [edx + 1]
shr ax, 5
sub cx, ax
cmp dword [esp + 0x3c], 0
mov word [ebp + 0x200], cx
je 0x5b3a99
cmp esi, 0xff
jle 0x5b39ee
jmp 0x5b3b12
cmp esi, 0xff
jg 0x5b3b12
mov esi, eax
rol eax, 0xd
or eax, 0x647e578
sub esi, 0x1867b9c6
add edi, edi
sub esi, eax
dec edi
add eax, eax
neg esi
shl eax, 0x17
mov ecx, esi
and esi, edi
mov eax, esp
rol eax, 1
sub esi, eax
dec esi
rol esi, 1
xor edi, ecx
mov eax, esp
xor eax, eax
mov esi, 0x310dfd
dec ecx
call fcn.004fa03c
or ebx, eax
mov ecx, 0x13240b3f
inc edx
call fcn.004458ca
not edx
call fcn.00452c15
neg eax
shr edi, 7
inc edx
xchg esi, eax
neg edx
rol esi, 9
not esi
shl esi, 0x18
dec esi
loop 0x5b3ae5
rol ebx, 0x1a
dec ebx
mov eax, 0x1f774c20
neg esi
xor ebx, ebp
xchg esi, esi
and esi, edi
xor edx, 0x172ce25c
mov eax, eax
dec ecx
mov eax, esp
xor esi, edi
shr esi, 0xf
mov esi, eax
neg esi
not eax
mov esi, dword [0x494a5b]
shl edx, 0x13
sub edx, eax
not esi
mov ecx, 0x282e9730
inc eax
neg esi
not eax
shl esi, 0x16
and edx, dword [0x4c6d0c]
neg ebx
mov ebx, dword [0x4e5643]
inc esi
rol eax, 0x15
shr esi, 0x1e
loop 0x5b3b40
mov ecx, dword [0x555fdb]
call fcn.00452c15
and eax, 0xdb54c
neg edx
xor edx, dword [0x478ec6]
mov ecx, 0x19b67236
shl edi, 0xf
xchg ebx, edx
call fcn.004453b3
test edx, ecx
jo 0x5b3bd1
inc eax
xchg esi, eax
inc eax
xchg edi, eax
shr edi, 0x1f
loop 0x5b3b7d
xor esi, eax
xor ecx, eax
test esi, esi
jo 0x5b3b65
mov esi, 0xce1f0
or edi, edi
shr ecx, 3
call fcn.00448ef9
xchg esi, eax
mov edi, edx
not edx
sub ebx, 0x5dd5120
not edx
sub edx, 0x8a4e0
xor esi, eax
sub ebx, eax
or esi, edi
xor eax, 0x838633
xor esi, eax
add edi, 0x7235c42
inc edx
pop esp
and eax, dword [edi]
push 0x44ac8f
ror eax, 1
not eax
call fcn.00448cc4
neg eax
call fcn.00452c15
inc ecx
xchg eax, eax
xor ebx, esp
xor edx, dword [0x491c90]
xchg esi, edx
call fcn.0044aaae
push 0x40
add ecx, dword [0x503cd8]
call fcn.0044688d
xor esi, eax
rol eax, 0x13
not eax
dec esi
rol edx, 0x18
sub ecx, dword [0x581860]
xor edx, dword [0x48e9c0]
call fcn.004494da
call fcn.0044b5ba
mov ecx, 0x4ac
ror esi, 0x16
xchg eax, esi
rol esi, 0x1f
not eax
xor esi, 0x3fa5906
ror edi, 0xd
dec esi
xor esi, eax
neg eax
add eax, 0x50d8e1a
inc esi
not eax
dec edi
xor eax, edi
not edx
ror eax, 0x10
sub ecx, edi
rol eax, 1
xor esi, eax
xor esi, eax
ror eax, 1
add ecx, edi
rol eax, 0x10
not edx
xor eax, edi
inc edi
not eax
dec esi
sub eax, 0x50d8e1a
neg eax
xor esi, eax
inc esi
rol edi, 0xd
xor esi, 0x3fa5906
not eax
ror esi, 0x1f
xchg eax, esi
rol esi, 0x16
push ecx
inc esi
ror ecx, 0x1f
neg eax
dec eax
add edx, ecx
ror eax, 0x1c
dec ecx
add ecx, eax
ror esi, 0x10
call fcn.0044cbcc
xor edx, ecx
dec edi
xor esi, eax
dec esi
call fcn.00446fa1
dec eax
inc eax
call fcn.0044ba73
inc esi
xor esi, eax
inc edi
xor edx, ecx
call fcn.00448bee
rol esi, 0x10
sub ecx, eax
inc ecx
rol eax, 0x1c
sub edx, ecx
inc eax
neg eax
rol ecx, 0x1f
dec esi
call 0x5b3cdc
xchg esi, esi
call fcn.0044517e
xchg eax, esi
xor eax, 0x12bb609e
ror edx, 0xe
neg esi
xchg esi, eax
sub esi, eax
call fcn.00447170
neg esi
xor esi, 0xe5084e0
not eax
call fcn.0044ba73
not eax
xor esi, 0xe5084e0
neg esi
add esi, eax
xchg esi, eax
neg esi
rol edx, 0xe
xor eax, 0x12bb609e
xchg eax, esi
call fcn.0044cbcc
xchg esi, esi
pop ebx
xor edx, eax
dec esi
not edx
xor eax, ebp
rol esi, 0x13
xor ecx, ebp
sub esi, eax
neg esi
xor esi, eax
dec edx
xor edx, eax
call fcn.004458ca
sub esi, eax
call fcn.0044aedb
neg esi
xor ecx, eax
add esi, 0x12c45092
not edx
xchg eax, eax
xchg eax, eax
not edx
sub esi, 0x12c45092
xor ecx, eax
neg esi
call fcn.00449e88
add esi, eax
xor edx, eax
inc edx
xor esi, eax
neg esi
add esi, eax
xor ecx, ebp
ror esi, 0x13
xor eax, ebp
not edx
inc esi
xor edx, eax
add ebx, 0x180
rol esi, 0x1a
xor eax, 0x25585f2c
dec esi
not edx
xchg eax, eax
dec ecx
ror eax, 0x14
xchg esi, esi
xor eax, 0xb7b501e
call fcn.0044a1a5
dec esi
call fcn.004453b3
xor esi, 0x719d960
call fcn.00449391
inc edx
xchg esi, esi
call fcn.00447170
add esi, 0x7c39460
ror eax, 2
dec eax
inc eax
rol eax, 2
sub esi, 0x7c39460
xchg esi, esi
dec edx
xor esi, 0x719d960
inc esi
call fcn.0044a80a
xor eax, 0xb7b501e
xchg esi, esi
rol eax, 0x14
inc ecx
xchg eax, eax
not edx
inc esi
xor eax, 0x25585f2c
ror esi, 0x1a
push ebx
ror esi, 5
inc edi
neg ebx
inc esi
neg esi
xor esi, eax
inc ebx
add esi, eax
call fcn.0044cca2
xor esi, eax
xor esi, eax
sub esi, eax
dec ebx
xor esi, eax
neg esi
dec esi
neg ebx
dec edi
rol esi, 5
call dword [sym.imp.KERNEL32.DLL_VirtualProtect]
ror ecx, 5
xor ebx, eax
add edx, esp
call fcn.0044aae5
neg esi
xor ebx, dword [0x556504]
inc eax
sub edx, esi
ror edx, 0x18
add ebx, eax
inc eax
not esi
xor ecx, dword [0x4e2231]
xor ecx, dword [0x4853c4]
dec eax
call fcn.00447202
mov ecx, 0x118
neg eax
xor esi, eax
rol eax, 0x10
dec esi
ror edi, 0x17
neg eax
add esi, eax
not eax
rol eax, 7
neg eax
neg eax
ror eax, 7
not eax
sub esi, eax
neg eax
rol edi, 0x17
inc esi
ror eax, 0x10
xor esi, eax
neg eax
call 0x5b3e92
inc esi
xchg eax, esi
xor edi, edx
inc esi
ror ecx, 0xc
xor ebx, eax
inc eax
ror edx, 0x1d
dec esi
ror esi, 2
rol esi, 2
inc esi
rol edx, 0x1d
dec eax
xor ebx, eax
rol ecx, 0xc
dec esi
xor edi, edx
xchg eax, esi
dec esi
pop edi
not esi
xor eax, 0x17f9e987
not edx
xor eax, esp
rol esi, 0x1a
dec edi
xor edx, ebx
xchg esi, esi
dec eax
xor edx, eax
sub ecx, esp
add edi, esi
xor edi, 0xd314db
rol esi, 0x16
xchg edx, edx
rol eax, 1
xor edx, ecx
xor edx, ecx
ror eax, 1
xchg edx, edx
ror esi, 0x16
xor edi, 0xd314db
sub edi, esi
add ecx, esp
xor edx, eax
inc eax
xchg esi, esi
xor edx, ebx
inc edi
ror esi, 0x1a
xor eax, esp
not edx
xor eax, 0x17f9e987
not esi
add edi, 0x35d
xor edi, esp
neg eax
xchg ecx, eax
sub esi, 0x6e8f99c
inc esi
xchg esi, eax
xor eax, esp
dec esi
xor esi, eax
not esi
not esi
xor esi, eax
inc esi
xor eax, esp
xchg esi, eax
dec esi
add esi, 0x6e8f99c
xchg ecx, eax
neg eax
xor edi, esp
xor dword [edi], 0x88e9bb74
rol ecx, 0x15
xchg eax, esi
xor ebx, esi
neg esi
rol eax, 0x11
xor edx, esi
xchg eax, eax
rol edx, 1
not esi
ror eax, 0xb
add esi, ebp
dec eax
xor esi, 0x1de9b956
not esi
not esi
xor esi, 0x1de9b956
inc eax
sub esi, ebp
rol eax, 0xb
not esi
ror edx, 1
xchg eax, eax
xor edx, esi
ror eax, 0x11
neg esi
xor ebx, esi
xchg eax, esi
ror ecx, 0x15
add dword [edi], 0x88e9bb74
inc esi
xor esi, 0x10487d18
neg esi
add esi, eax
inc eax
sub edi, ebx
not esi
xchg edi, eax
neg esi
dec edx
xor ecx, esp
sub ebx, 0x16e4884e
add ebx, 0x16e4884e
xor ecx, esp
inc edx
neg esi
xchg edi, eax
not esi
add edi, ebx
dec eax
sub esi, eax
neg esi
xor esi, 0x10487d18
dec esi
xor dword [edi], 0x88e9bb74
xor eax, 0x1aebce55
ror ebx, 0x14
xchg eax, eax
ror esi, 0x10
not eax
add esi, eax
xchg edx, edx
not edx
xchg edi, eax
xor eax, ecx
xor edx, ebx
not eax
ror ebx, 0x19
inc esi
dec esi
rol ebx, 0x19
not eax
xor edx, ebx
xor eax, ecx
xchg edi, eax
not edx
xchg edx, edx
sub esi, eax
not eax
rol esi, 0x10
xchg eax, eax
rol ebx, 0x14
xor eax, 0x1aebce55
sub dword [edi], 0x88e9bb74
rol esi, 0xa
sub esi, eax
xor edx, esp
xor ebx, esi
rol edi, 0x1f
xchg esi, edx
add edx, ebp
xor ecx, esi
sub eax, esp
not eax
add edx, esi
xor edi, esp
rol eax, 7
xor edi, edx
rol esi, 0x12
ror esi, 0x12
xor edi, edx
ror eax, 7
xor edi, esp
sub edx, esi
not eax
add eax, esp
xor ecx, esi
sub edx, ebp
xchg esi, edx
ror edi, 0x1f
xor ebx, esi
xor edx, esp
add esi, eax
ror esi, 0xa
not dword [edi]
sub esi, 0xe960b14
inc ecx
xor eax, 0x199ffa34
xor ebx, esp
add esi, eax
xchg edx, esi
rol esi, 0x1f
add edi, esp
inc esi
xor esi, eax
inc esi
add esi, ebx
xor edi, edx
not esi
xor eax, esi
not edx
inc edx
add esi, ebp
rol ebx, 7
ror ebx, 7
sub esi, ebp
dec edx
not edx
xor eax, esi
not esi
xor edi, edx
sub esi, ebx
dec esi
xor esi, eax
dec esi
sub edi, esp
ror esi, 0x1f
xchg edx, esi
sub esi, eax
xor ebx, esp
xor eax, 0x199ffa34
dec ecx
add esi, 0xe960b14
add dword [edi], 0x88e9bb74
xchg esi, eax
xor edx, 0x319e3f0
neg esi
ror ecx, 0x13
xor ecx, esp
dec edx
xor esi, ecx
not eax
xor esi, eax
rol eax, 9
ror eax, 9
xor esi, eax
not eax
xor esi, ecx
inc edx
xor ecx, esp
rol ecx, 0x13
neg esi
xor edx, 0x319e3f0
xchg esi, eax
not dword [edi]
xor eax, 0xd67fca0
xchg edi, eax
sub esi, eax
neg edx
sub edi, eax
xor edx, eax
neg eax
dec eax
neg esi
xor ebx, ebp
xchg edi, eax
xchg edi, eax
xor ebx, ebp
neg esi
inc eax
neg eax
xor edx, eax
add edi, eax
neg edx
add esi, eax
xchg edi, eax
xor eax, 0xd67fca0
xor dword [edi], 0x88e9bb74
rol esi, 0xe
xor esi, eax
neg eax
add eax, 0x2a5edbf8
xor edx, eax
add esi, eax
sub esi, eax
add esi, esp
xchg esi, edx
neg eax
ror edx, 0xb
sub esi, eax
dec eax
xchg esi, edx
inc esi
ror esi, 0x1d
xor edx, 0x39294e90
xor esi, 0x18f5f67
xor esi, eax
rol esi, 0xe
ror esi, 0xe
xor esi, eax
xor esi, 0x18f5f67
xor edx, 0x39294e90
rol esi, 0x1d
dec esi
xchg esi, edx
inc eax
add esi, eax
rol edx, 0xb
neg eax
xchg esi, edx
sub esi, esp
add esi, eax
sub esi, eax
xor edx, eax
sub eax, 0x2a5edbf8
neg eax
xor esi, eax
ror esi, 0xe
add edi, 4
add ecx, esi
xor esi, eax
xor edx, ebp
neg esi
sub eax, ebp
xchg ebx, eax
rol edi, 0x1f
xor ebx, edx
sub esi, ebx
ror esi, 9
sub ecx, ebx
neg esi
sub eax, ecx
neg eax
inc eax
ror eax, 0x14
inc esi
not edi
not edi
dec esi
rol eax, 0x14
dec eax
neg eax
add eax, ecx
neg esi
add ecx, ebx
rol esi, 9
add esi, ebx
xor ebx, edx
ror edi, 0x1f
xchg ebx, eax
add eax, ebp
neg esi
xor edx, ebp
xor esi, eax
sub ecx, esi
sub ecx, 4
jne 0x5b3f15
in al, 0xe
add al, 1
sal byte [esi + 0x23], 0x9a
in eax, dx
inc ebp
ret
or dword [ebx - 0x1389488f], edi
sahf
pop ds
imul ebp, dword [ebp + esi*2 + 0x616b7714], 0x52989c5c
ja 0x5b42c3
popal
pop esp
pushfd
cwde
push edx
adc ah, 0x6b
imul ebx, dword [edx + eax], 0x2596ecf0
lodsb al, byte [esi]
mov ebp, dword [edi + 0x62]
in al, dx
xchg esi, eax
and eax, 0x626f8bac
cdq
pushfd
xchg ebp, eax
invalid
mov bh, 0x33
sal byte [esi + 0x3b], 0x98
push ebx
xor bl, byte [edi + 0x5ba28855]
aaa
iretd
push ebp
mov byte [edx - 0x30c8a5], ah
adc eax, 0x837430c9
add ecx, ecx
leave
xor byte [ebx + eax*4 + 1], dh
leave
sub ah, byte [esi + 0x51]
mov byte [ebp + 3], cl
jl 0x5b4258
call dword [0x92a57051]
inc ecx
jo 0x5b4256
xchg edx, eax
jns 0x5b42ae
outsb dx, byte [esi]
adc cl, ah
out 0x19, eax
daa
jnp 0x5b4279
mov ds, word [ecx + eax + 0x33b6fc2]
add edx, eax
outsd dx, dword [esi]
cmp eax, dword [ebx]
rcl byte [ebx + ecx - 0x66], 0xee
mov edx, ss
jg 0x5b424a
sub eax, 0xf38b5ca6
aad 0x4d
dec ebp
xor eax, 0xa0e71d46
lcall 0x22b5, 0xf28df476
lahf
aad 0x8a
jbe 0x5b4313
add eax, 0x33aa67e
sbb dword [0xdafdf09f], ebp
cwde
jnp 0x5b4264
mov es, word [edx + 0x7976c011]
jnp 0x5b42ac
mov gs, word [edx - 0x5b]
jae 0x5b42f9
call ebp
xor edx, dword [edx - 0x6d81fec4]
jnp 0x5b4374
ret 0xda1d
inc eax
inc eax
sbb eax, dword [eax]
add edi, 4
lea ebx, [esi - 4]
xor eax, eax
mov al, byte [edi]
inc edi
or eax, eax
je 0x5b4348
cmp al, 0xef
ja 0x5b433b
add ebx, eax
mov eax, dword [ebx]
xchg ah, al
rol eax, 0x10
xchg ah, al
add eax, esi
mov dword [ebx], eax
jmp 0x5b431d
and al, 0xf
shl eax, 0x10
mov ax, word [edi]
add edi, 2
jmp 0x5b432a
mov ebp, dword [esi + 0x1b4048]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x19f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
lea ebx, [esi - 0x1000]
lea edi, [ebx + 0x1b43a3]
push edi
xor eax, eax
stosb byte es:[edi], al
pop ecx
dec ecx
push eax
push 1
push ebx
call ecx
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x5b4394
sub esp, 0xffffff80
jmp 0x4013f0