Function at 0xa8ac86
Capabilities:
Packed with generic packer

Disassembly:
adc esi, eax
shl cx, 0x23
mov dx, word [ebp + edx*2 - 0x14536]
movzx eax, cl
bts ecx, eax
bswap eax
mov cl, byte [ebp + 2]
cwde
call fcn.00aa4993
mov edx, 0x12925a2b
movsx eax, dx
movsx ecx, al
lea ebp, [ebp + edx - 0x12925a2f]
dec cl
mov ecx, dword [ebp + edx*2 - 0x2524b456]
xor ecx, ebx
neg dl
or eax, eax
and eax, eax
rol ecx, 2
inc ecx
sar dl, 0xc7
sar al, 0xc3
neg ecx
cdq
dec dl
inc ecx
neg ecx
mul dl
xor ebx, ecx
add esi, ecx
mov eax, dword [edx + edi - 0xff]
mov cl, byte [edi + edx - 0xfb]
lea edi, [edi + edx - 0xfd]
btr edx, edx
xor dx, dx
lea edx, [edx + edx*8 + 0x4d383014]
shr eax, cl
movsx ecx, dx
mov dword [edi + edx - 0x4d383014], eax
jmp esi
xor ecx, ebx
rol ecx, 2
ror word [esp + edx - 0xfffe], 9
adc dl, 0x19
xor ecx, 0xa6043336
call fcn.00acaecb
xor ebx, eax
or cx, dx
ja 0x966895
xor ecx, ebx
neg ax
movzx edx, ax
and eax, edx
lea ecx, [eax + ecx - 0x570a2d10]
btr dx, ax
btr eax, edx
not ecx
shr eax, 0xe7
btc eax, edx
sar ax, 0x49
rol ecx, 1
jmp 0xa9a273
not dl
mov edx, dword [esp + 0x1c]
jmp 0xac4da6
mov ecx, dword [ebp + ecx - 0x9979]
rol ax, 0x6e
cdq
call fcn.00a84a92
mov eax, 0x771d56ad
mov eax, dword [eax + edi - 0x771d56ad]
add edi, 4
xor eax, ebx
bswap eax
mov ecx, 0x8aa6a29b
ror eax, 1
movzx edx, cl
sar dx, 0x88
neg eax
add dx, cx
lea eax, [ecx + eax - 0x65e7b474]
inc ecx
js 0x9aaf75
sbb dl, 0x1f
and cx, cx
sub dword [esp + ecx*2 - 0x18cc8ff3], ecx
xor bl, dl
bts cx, cx
neg cl
sal word [esp + ecx*8 - 0x633246c7], 0x68
lea edx, [esp + edx + 0x20]
sbb word [esp + ecx*2 - 0x18cc9199], 0xd7b4
rol dword [esp + ecx*8 - 0x633246bc], 0x6b
mov dword [ecx + edx - 0xc6648db], eax
ror ecx, cl
movsx eax, cx
mov dword [esp + eax*8 - 0xdb08], esi
ret 0x1c
inc dl
shl ax, cl
or edx, edx
movzx ecx, dx
lea edx, [ecx - 0x77cbc5f7]
mov word [ecx + esi - 0x9979], ax
movzx eax, dx
lea ebp, [ecx + ebp - 0x997d]
jns 0xa63d56
mov dword [ebp], eax
mov edx, dword [esp]
dec dword [esp + edx]
ror ecx, cl
mov ecx, dword [edx + edi]
sbb dx, dx
lea edi, [edi + edx - 0xfffb]
jbe 0x97a598
mov ecx, 0x4d2eb606
mov ecx, dword [ebp + ecx - 0x4d2eb60a]
xor ecx, ebx
mov eax, 0x3e213495
mov edx, eax
rol ecx, 3
add eax, 0x5b235a1e
push eax
mov dword [esp + edx*2 - 0x7c42692a], eax
lea ecx, [ecx + edx - 0x495c3d53]
div dword [esp + edx - 0x3e213495]
neg dword [esp + eax - 0x67c621a5]
xor ecx, 0xfa311b16
sub dword [esp + eax - 0x67c621a5], edx
not word [esp + eax - 0x67c621a5]
ror ecx, 3
push edx
xchg dl, al
xor ebx, ecx
add edi, ecx
mov edx, dword [eax + esi - 0x67c62154]
mov ecx, 0xfe174cb2
jmp 0xad93df
mov dword [esp + eax*2 - 0x4513c08], eax
xor ecx, 0x625fa00
neg al
shl byte [esp + eax*2 - 0x4513df7], 4
neg ecx
xor ebx, ecx
ror edx, 0xa1
add edx, dword [edi + eax*2 - 0x4513df8]
inc eax
not ecx
not edx
neg eax
adc ax, 0x1f0e
and ecx, edx
lea edx, [eax + 0x5fa10d1e]
btc ax, 0xb9
setb al
mov dword [edx + edi - 0x5d788d30], ecx
bt ax, ax
mov edx, dword [edx + ebp - 0x5d788d38]
sbb ebp, 8
btc eax, eax
xor edx, ebx
dec edx
xor eax, eax
lea ecx, [eax*2 - 0x4d4863f6]
bswap edx
ror ecx, 0xc6
bt cx, 0xbe
ror edx, 1
neg ecx
jo 0xa80b5a
sbb edx, 0xc29a679c
idiv byte [esp + eax*4 + 3]
rol edx, 3
inc al
xor ebx, edx
xadd cl, al
adc esi, edx
dec ecx
ror ecx, cl
call fcn.009c915d
mov eax, dword [edi - 4]
mov ecx, dword [edi]
push 0x1a14050e
mov edx, dword [esp + 0xf]
sub edi, 0xfffffffc
sub dx, 0x2028
jb 0xac3107
and edx, eax
dec ecx
mul edx
sbb eax, edx
cmovl edx, eax
xor ebx, ecx
add ebp, ecx
lea ecx, [eax*2 - 0x625ccbd6]
mov ecx, dword [edi + eax]
mul eax
or ax, word ss:[ecx + eax]
or dx, 0x5a81
lea edi, [edi + edx - 0x5a7f]
sub dl, dh
je 0x9992c9
mov word [edi + edx - 0x5a27], ax
inc dx
imul dx, dx
jmp ebp
mov dword [esp + 8], edx
lea ecx, [edx - 0x7fe2e64e]
mov ecx, dword [esp + ecx*2 - 0x657fd496]
not dx
jmp 0x9ef9b5
and edx, ecx
movzx ecx, al
call fcn.009a33a6
mov ebp, dword [esp + 0x14]
jmp 0xab0136
lea edx, [edx + edx + 0x642c9f81]
add eax, ecx
movzx edx, byte [edx + ebp - 0x63028b2b]
mov ecx, dword [esp + 0x14]
sub ebp, 0xfffffffb
inc ecx
add word [esp + 0x16], cx
xor dl, bl
lea ecx, [ecx + ecx*4 - 0x40ecc5d7]
imul ecx, dword [esp + ecx - 0x6b4d1265]
dec dl
xchg dword [esp + 0x14], ecx
ror dl, 1
push ecx
add ecx, 0x25188a80
adc dl, 7
and cx, 0x4c1c
neg dl
sar cl, 0x62
push ecx
jp 0xa63f90
mov ecx, dword [eax + esi - 0x67c62150]
not edx
not ecx
jmp 0xabf97d