Function at 0x649142
Capabilities:
Encrypt data using aes

Disassembly:
pushal
lea esp, [esp + 0x20]
jmp 0x64925f
call fcn.006491f6
repe cmpsb byte [esi], byte es:[edi]
jmp 0x677a67
call fcn.006491cc
cmp al, 0x30
push esp
mov word [esp], dx
lea esp, [esp + 1]
lea esp, [esp + 3]
jmp 0x649242
push edx
pop word [esp]
lea esp, [esp + 2]
jmp 0x6492ed
mov eax, 0x403
jmp 0x648d25
jmp 0x6498f8
movzx ebx, byte [esi + 0xe]
push esp
sub esp, 0x10
call fcn.00648b62
call fcn.0064a36e
mov ah, 0x2c
mov byte [0xa2f234c5], al
cmp dword [ecx - 0x6775c438], ebp
sti
ror byte [ebp - 0x24], cl
loop 0x648d5a
insb byte es:[edi], dx
call fcn.006498d1
push word [esp + 1]
lea esp, [esp + 2]
jmp 0x649872
cmp eax, 0xf0f179cc
lea esp, [esp + 0x38]
xor edi, dword [ebx*4 + 0x625a08]
jmp 0x648d18
pushal
jmp 0x649a79
xchg edi, eax
inc ebx
aam 0x4a
sub eax, 0x80c16edc
inc ebx
call fcn.00648e52
in al, dx
js 0x648db7
mov dword [eax - 0x43], edi
ret 0xc555
cmp bl, 0x2f
push edx
jmp 0x649c1a
push edx
jmp 0x649bce
call fcn.00649a23
push edx
push dword [esp + 8]
lea esp, [esp + 0x10]
cmp al, 0x2b
jmp 0x649afd
call fcn.00649940
xchg ecx, eax
or eax, 0xd017e49d
add dword [esi + 0x19a66b0c], ebx
outsd dx, dword [esi]
jbe 0x648edd
mov al, byte [0x3f8b60e3]
pushal
mov edi, dword [edi]
jmp 0x649d25
movzx esi, bl
jmp 0x649c50
pushal
pop word [esp + 0x17]
lea esp, [esp + 1]
jmp 0x649eac
call fcn.00649c7b
xor al, 0xa7
aaa
push edx
mov eax, dword [0x4ed8421b]
sub eax, ebx
push ds
fmul dword [esi + 0x29]
fcomp dword [esi]
mov ch, 0xa4
xlatb
or ecx, ecx
push 0xda6e9
add byte [ebp + 0x19ea8f1f], dl
xchg esp, eax
std
jmp 0x649c97
jo 0x648ee0
xor dword [eax - 0x4e], 0x56cffced
shr ecx, 0x82
push cs
add byte [eax], al
cmc
js 0x648ef8
mov dword [eax - 0x46], edi
lds edx, [ebp - 0x3b]
lodsb al, byte [esi]
pop edi
out dx, al
inc esp
neg esi
sub dword [eax - 0x18], ecx
cmp byte [esi], cl
add byte [eax], al
arpl di, bp
jg 0x648f3b
jmp 0x96651a6a
call fcn.00649c69
dec esi
in al, dx
bound eax, qword [0xf97973f4]
jns 0x648f36
imul ecx, dword [eax], 0xbb584afb
xchg edx, eax
or eax, 0x3489549c
and al, 0x88
jl 0x648f71
add ch, cl
retf
imul edi, ebx, 0xffffff9e
insd dword es:[edi], dx
scasd eax, dword es:[edi]
sbb eax, 0x9465028c
and byte [ecx + 0x2d32dbf8], bl
lea esp, [esp + 1]
mov word [esp], dx
jmp 0x649196
lea esp, [esp + 2]
jmp 0x6492a6
lea esp, [esp + 0x24]
cmp al, 0x5a
pushal
pop word [esp + 0x17]
push dword [esp + 8]
pushal
jmp 0x649166
lea esp, [esp + 3]
jb 0x61af2f
pushal
push dword [esp + 8]
jmp 0x64917f
cmp al, 0x7a
pushal
pop word [esp + 7]
lea esp, [esp + 7]
call fcn.006491c6
pushal
mov dword [esp + 0xf], esi
lea esp, [esp + 0x20]
jbe 0x61af85
ja 0x61af50
push 0xfffffffffffffffe
insb byte es:[edi], dx
or eax, dword [esi]
ret
jb 0x61af50
pushal
lea esp, [esp + 0x20]
cmp al, 0x39
jmp 0x649221
cmp al, 0x61
jb 0x61af66
pushal
lea esp, [esp + 0x1d]
lea esp, [esp + 3]
jmp 0x6491e5
lea esp, [esp + 0x40]
jbe 0x61af85
ja 0x61af2f
cmp al, 0x2f
push edx
jmp 0x649306
lea esp, [esp + 0x1c]
mov byte [ebp - 1], bl
call fcn.00649316
inc esi
fimul dword [eax + 0x2f]
ficomp dword [ecx]
mov ebx, 0x8a9c0d92
pop ecx
add dword [eax + 0x66], esp
pop dword [esp + 0xb]
mov bl, byte [ecx + 1]
pushal
pop word [esp + 0xb]
mov word [esp + 0xc], di
lea esp, [esp + 2]
jmp 0x6492d7
lea esp, [esp + 4]
jne 0x61afbd
je 0x61af85
lea esp, [esp + 4]
cmp cl, 0x2b
call fcn.00649859
cmp cl, 0x3d
pushal
pop dword [esp + 4]
mov dword [esp + 0x11], ebp
mov byte [esp + 0xd], ch
jmp 0x64991d
cmp dl, 0x3d
jne 0x648e68
push esp
push word [esp + 1]
pushal
jmp 0x64992d
lea esp, [esp + 0x1c]
je 0x648ca4
jne 0x61afbd
lea esp, [esp + 2]
lea esp, [esp + 0x24]
mov dword [edi], 1
jmp 0x648e3d
lea esp, [esp + 0x20]
pop eax
jmp 0x648e25
jne 0x648dc1
push 0x3e
jmp 0x648da6
push esp
pop word [esp]
lea esp, [esp + 2]
jmp 0x649c01
push dword [esp + 2]
push dword [esp + 4]
pop dword [esp]
mov dword [esp + 4], esi
cmc
jmp 0x649bb5
lea esp, [esp + 0x20]
jne 0x648e0a
pushal
push edx
push dword [esp + 0x16]
jmp 0x649c0f
lea esp, [esp + 4]
cmp bl, 0x2b
pushal
mov byte [esp + 0x10], ch
jmp 0x649be0
lea esp, [esp + 0x28]
push 0x3e
jmp 0x648f30
lea esp, [esp + 4]
jne 0x648ea7
pushal
jmp 0x649d3f
cmp bl, 0x39
ja 0x648eec
sub esp, 0xe
mov byte [esp + 5], ah
jmp 0x649cc5
sub esi, 0x41
jmp 0x648e7e
cmp bl, 0x5a
push edx
lea esp, [esp + 4]
ja 0x648ed4
jmp 0x649c73
pop word [esp + 1]
mov word [esp], di
lea esp, [esp + 0xc]
add esi, 4
jmp 0x648e7e
lea esp, [esp + 8]
jb 0x648ebd
sub esp, 0xc
pop word [esp + 1]
pop word [esp + 1]
call fcn.00649cda
jmp 0x75eb8088
stc
lea esp, [esp + 0x20]
cmp edi, 2
push esp
push dword [esp]
jmp 0x649cf4
lea esp, [esp + 0x20]
push 0x3f
jmp 0x648f30
lea esp, [esp + 1]
jmp 0x649ef0
mov edx, dword [esi]
pop esi
jmp 0x649f6d
push esi
mov esi, ebp
lea esi, [esi - 8]
jmp 0x649ed9
lea esp, [esp + 0x1c]
jmp 0x648f46
iretd
call fcn.00677b58
lahf
push es
xchg esp, eax
push cs
mov ebp, 0x4e2bbb2b
mov ebp, 0x88691e7e
sub eax, dword [edx + 0x66]
push dword [esp + 0xc]
lea esp, [esp + 1]
xchg dword [esp + 0x48], ecx
call fcn.006779f4
loopne 0x677b0e
in eax, dx
je 0x677a1b
cmp dl, dl
dec esi
fdivr qword [ebx - 0x59a06aaa]
rcl dword [eax - 0x2d]
fcmovnb st(0), st(6)
retf
mov dword [esp + 2], edx
call fcn.00622857
mov byte [esp + 2], ah
pop word [esp + 1]
mov byte [esp + 1], ch
xchg dword [esp + 0x18], eax
call 0x677b42
mov bh, 0x34
stosb byte es:[edi], al
int 0x3c
lea esp, [ecx - 0x4aa5dc20]
push 0xacfa7da3
call fcn.00627eee
push word [esp + 1]
mov word [esp], di
jmp 0x677bd5
lea esp, [esp + 5]
lea esp, [esp]
lea esp, [esp + 1]
push dword [esp + 0x18]
ret 0x1c