Function at 0x51eed1
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
pop edi
pop esi
lea ebx, [ebp*4]
jmp 0x4eb544
mov bh, 0x93
jmp 0x51f06d
jmp 0x51e9c6
movzx ebx, byte [esi + 0x11]
push bp
mov dx, 0x77a1
xchg edi, edx
mov dx, word [esp]
jmp 0x51ea1d
sub esp, 6
push dword [esp + 1]
mov word [esp + 1], bx
lea esp, [esp + 2]
jmp 0x51ea3f
lea esp, [esp + 2]
push edx
pushal
mov dword [esp + 0x14], ebx
jmp 0x51ea07
pop edx
bswap edx
mov dl, dh
jmp 0x51ea55
lea esp, [esp + 8]
popal
lea edx, [edx*4]
lea edx, reloc.kernel32.dll_DeleteCriticalSection
mov ebx, dword [edx]
jmp 0x51ea29
add esi, 0x10
lea edx, [ebp*4]
jmp 0x51eaae
shr edi, 0x18
stc
jmp 0x51eab9
mov cx, 0x50a7
mov dword [esp], edx
popal
jmp 0x51ea7f
mov edx, dword [esi]
mov di, word [esp]
shl edi, cl
pushal
jmp 0x51ea95
mov edi, dword [edi*4 + reloc.kernel32.dll_DeleteCriticalSection]
and edi, ecx
call 0x51eac8
pop ss
push eax
jmp 0x51eb07
pop eax
and ebx, ecx
push dx
lea esp, [esp + 2]
jmp 0x51eaee
lea esp, [esp + 4]
xor edi, dword [ebx*4 + reloc.kernel32.dll_DeleteCriticalSection]
dec bx
jmp 0x51eb3d
mov eax, edi
lea eax, [eax*4]
lea eax, reloc.kernel32.dll_DeleteCriticalSection
mov edi, dword [eax]
jmp 0x51eacb
push edi
mov edi, ebx
lea edi, [edi*4]
jmp 0x51ebc1
movzx ebx, byte [esi + 2]
clc
clc
sub esp, 0x19
lea esp, [esp + 1]
jmp 0x51eb1a
movzx ebx, byte [esi + 5]
jmp 0x51eb92
lea esp, [esp + 0x18]
xor edi, dword [ebx*4 + reloc.kernel32.dll_DeleteCriticalSection]
lea ebx, reloc.kernel32.dll_DeleteCriticalSection
lea ebx, [ecx*4]
jmp 0x51eb4c
and edx, ecx
call fcn.0051eb7c
mov edx, dword [edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
clc
and edx, ecx
push bx
jmp 0x51ebab
lea esp, [esp + 2]
jmp 0x51ebf8
lea edi, reloc.kernel32.dll_DeleteCriticalSection
mov ebx, dword [edi]
pop edi
stc
and ebx, ecx
jmp 0x51eb62
mov dword [esi], edi
shr di, 9
lea edi, [ecx + 0x30]
mov ebx, dword [ebx*4 + reloc.kernel32.dll_DeleteCriticalSection]
call fcn.0051ec21
ret
lea esp, [esp + 0x1c]
xor edi, dword [edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
bsr edx, esi
mov edx, dword [esi + 4]
jmp 0x51ebcf
pop word [esp]
mov word [esp], di
push eax
lea esp, [esp + 2]
jmp 0x51eef7
push ebx
mov ebx, esi
add ebx, 8
jmp 0x51ef03
mov dword [ebx], edi
pop ebx
mov edi, dword [esp]
inc edi
jmp 0x51ef69
pop dword [esp + 2]
lea esp, [esp + 2]
jmp 0x51ef8e
shr edi, 0x18
mov edi, dword [edi*4 + reloc.kernel32.dll_DeleteCriticalSection]
and edi, ecx
sub esp, 0xe
jmp 0x51ef32
mov ebx, dword [ebx*4 + reloc.kernel32.dll_DeleteCriticalSection]
btr di, si
mov edi, edx
jmp 0x51ef48
xor edi, dword [ebx*4 + reloc.kernel32.dll_DeleteCriticalSection]
lea ebx, reloc.kernel32.dll_DeleteCriticalSection
add bh, bl
jmp 0x51ef9d
mov edi, dword [edi*4 + reloc.kernel32.dll_DeleteCriticalSection]
and ebx, ecx
lea esp, [esp + 0x40]
jmp 0x51ef78
push edx
pushal
mov dword [esp + 0x14], esi
sub esp, 0xa
jmp 0x51f003
pop edx
mov ebx, dword [ebx*4 + reloc.kernel32.dll_DeleteCriticalSection]
stc
jmp 0x51efe3
and ebx, ecx
stc
sub esp, 2
lea esp, [esp + 2]
jmp 0x51f083
and edx, ecx
mov edx, dword [edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
cmc
jmp 0x51efcd
lea esp, [esp + 2]
lea esp, [esp + 8]
popal
add edx, 0xe
movzx ebx, byte [edx]
jmp 0x51efa8
lea esp, [esp + 1]
lea esp, [esp + 0xc]
xor edi, dword [edx*4 + reloc.kernel32.dll_DeleteCriticalSection]
dec dword [ebp - 4]
call fcn.0051f014
mov dword [esp + 0x18], esi
popal
jmp 0x51f061
lea ecx, [ecx + 0xc]
mov dword [ecx], edi
pop ecx
lea esp, [esp + 4]
jmp 0x51f0aa
pop ebx
call fcn.0051f094
mov dl, 0x21
mov cl, 0xd0
and esp, edx
hlt
xor edi, dword [ebx*4 + reloc.kernel32.dll_DeleteCriticalSection]
sub esp, 8
and edx, ecx
sub esp, 5
jmp 0x51f02a
jne 0x4eb586
je 0x4eb535
pushal
pushfd
jmp 0x51f42e
push sp
lea esp, [esp + 2]
jmp 0x51ffd1
lea esp, [esp + 0x24]
pop edi
jmp 0x520289
pop ebx
leave
ret