Function at 0x59f19e
Capabilities:
Encrypt data using aes

Disassembly:
pushal
not edi
popal
pushfd
push dword [esp]
mov word [esp], si
mov word [esp + 1], ax
jmp 0x59f2b9
pushal
mov esi, edi
popal
push bp
pushfd
mov word [esp + 3], si
mov dword [esp], ebp
mov byte [esp + 2], cl
lea esp, [esp + 1]
mov dword [esp], esp
mov byte [esp + 1], dh
lea esp, [esp + 4]
push esi
lea esp, [esp + 1]
lea esp, [esp + 4]
push ebx
push ebp
push word [esp + 2]
pushal
lea esp, [esp + 0x1c]
pop word [esp + 3]
push edi
pop dword [esp + 1]
mov dword [esp + 2], eax
mov dword [esp + 4], ebp
push edx
push word [esp + 3]
lea esp, [esp + 1]
mov byte [esp + 3], bh
mov byte [esp + 3], cl
push word [esp + 2]
pop word [esp]
mov word [esp], dx
lea esp, [esp + 1]
lea esp, [esp + 8]
push esi
push edi
movzx edx, byte [eax]
push ecx
jmp 0x59f2f0
mov word [esp + 5], sp
mov word [esp + 4], bx
lea esp, [esp + 8]
lea esp, [esp + 4]
jmp 0x59f235
push word [esp + 2]
lea esp, [esp + 1]
pop word [esp]
mov byte [esp + 1], cl
push word [esp]
pushal
lea esp, [esp + 1]
shl edx, 8
push eax
push bx
pop word [esp]
push word [esp + 3]
pop word [esp + 1]
push word [esp + 2]
lea esp, [esp + 2]
lea esp, [esp + 0x28]
movzx esi, byte [eax + 1]
xor edx, esi
movzx esi, byte [eax + 2]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 3]
pushfd
lea esp, [esp + 3]
push bx
mov word [esp], si
mov byte [esp], ch
lea esp, [esp + 3]
shl edx, 8
push si
mov byte [esp], ah
push si
mov dword [esp], esp
mov byte [esp + 1], bl
push dword [esp + 1]
push word [esp + 6]
push word [esp + 8]
lea esp, [esp + 0xc]
xor edx, esi
movzx esi, byte [eax + 5]
push eax
jmp 0x59fa9a
and ecx, 0xff0000
and edi, 0xff000000
push esp
push word [esp + 3]
sub esp, 2
add esp, 3
clc
sub esp, 0x1f
mov byte [esp + 1], dl
sub esp, 2
mov dword [esp + 0x1d], eax
lea esp, [esp + 2]
xor ecx, edi
pushal
lea esp, [esp + 0x44]
mov edi, edx
and edx, esi
mov edx, dword [edx*4 + 0x51eecc]
shr edi, 0x18
movzx edi, byte [edi*4 + 0x51eecc]
xor ecx, edi
and edx, ebp
cmc
sub esp, 3
pushfd
lea esp, [esp + 3]
xor ecx, edx
push dx
pushal
lea esp, [esp + 2]
lea esp, [esp + 0x24]
xor ecx, dword [ebx]
lea edi, [eax + 0x10]
xor ecx, dword [eax]
add ebx, 4
mov dword [edi], ecx
mov edx, dword [eax + 4]
cmc
stc
sub esp, 0x10
mov word [esp + 1], bp
xor edx, ecx
push ax
pushal
lea esp, [esp + 0x17]
lea esp, [esp + 3]
lea esp, [esp + 0x18]
mov dword [eax + 0x14], edx
mov ecx, dword [eax + 8]
xor ecx, edx
mov dword [eax + 0x18], ecx
push edi
pushal
mov dh, byte [esp]
mov ebx, dword [esp]
bswap ecx
bswap ebx
setb dh
mov dword [esp], eax
push si
lea esp, [esp + 1]
pushal
mov word [esp + 0xa], sp
pop word [esp + 2]
push dword [esp + 0xa]
push cx
pop word [esp + 0x13]
lea esp, [esp + 9]
lea esp, [esp + 2]
lea esp, [esp + 0x18]
popal
lea edi, [edi + 0xc]
mov edx, dword [edi]
pop edi
xor edx, ecx
mov dword [eax + 0x1c], edx
cmp ebx, 0x5206f4
jne 0x59fdfa
push 0xa
not eax
bswap ax
mov ax, word [esp]
setbe ah
mov eax, dword [esp]
push di
mov byte [esp], dl
push ebx
pop word [esp]
mov dword [esp], ecx
lea esp, [esp + 8]
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, ecx
mov dword [eax], edx
pop eax
movzx edx, byte [eax + 4]
shl edx, 8
pushal
push dword [esp + 1]
pop dword [esp + 4]
add esp, 0x14
pop word [esp + 2]
mov byte [esp + 7], bl
lea esp, [esp + 2]
xor edx, esi
push esi
lea esp, [esp + 2]
lea esp, [esp + 2]
lea esp, [esp + 8]
movzx esi, byte [eax + 6]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 7]
shl edx, 8
cmc
sub esp, 0x14
sub esp, 1
push dword [esp + 0x10]
mov word [esp + 0x16], si
pop dword [esp + 3]
mov byte [esp + 0x13], bl
lea esp, [esp + 2]
sub esp, 0xb
lea esp, [esp + 2]
xor edx, esi
pushal
push dword [esp + 6]
mov word [esp + 6], si
push word [esp + 0x12]
pop word [esp + 6]
lea esp, [esp + 0x40]
movzx esi, byte [eax + 9]
mov dword [ecx + 4], edx
movzx edx, byte [eax + 8]
shl edx, 8
clc
stc
sub esp, 9
pop dword [esp]
push dword [esp + 4]
lea esp, [esp + 1]
xor edx, esi
pushal
push ebp
lea esp, [esp + 0x2c]
movzx esi, byte [eax + 0xa]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 0xb]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 0xd]
mov dword [ecx + 8], edx
movzx edx, byte [eax + 0xc]
shl edx, 8
push ebp
mov word [esp + 1], dx
pop word [esp]
add esp, 0
add esp, 1
pushfd
lea esp, [esp + 1]
xor edx, esi
pushal
pop word [esp + 5]
pop dword [esp + 0xa]
mov dword [esp + 0xc], edi
mov dword [esp + 2], esi
push sp
mov dword [esp + 0x14], edi
lea esp, [esp]
push word [esp + 0x18]
lea esp, [esp + 2]
lea esp, [esp + 0x20]
movzx esi, byte [eax + 0xe]
movzx eax, byte [eax + 0xf]
shl edx, 8
sub esp, 0x16
lea esp, [esp + 2]
xor edx, esi
push di
push ebx
push dword [esp + 3]
push dword [esp + 8]
pop dword [esp + 4]
lea esp, [esp + 2]
lea esp, [esp + 0x1c]
shl edx, 8
xor edx, eax
push edi
pushal
setne bl
mov ax, 0x1b46
mov di, word [esp]
xchg dx, di
mov edi, esp
mov bx, 0x57c0
lea esi, [0x60245349]
mov dword [esp], ecx
pushal
pop word [esp + 1]
push dword [esp + 9]
mov byte [esp + 0xf], bl
pop word [esp + 0xf]
pop word [esp + 3]
lea esp, [esp + 7]
push si
lea esp, [esp + 1]
lea esp, [esp + 0x18]
popal
lea edi, [edi + 0xc]
mov dword [edi], edx
pop edi
mov eax, edx
pushal
mov byte [esp + 6], dl
push dword [esp + 2]
pop word [esp]
push word [esp + 3]
lea esp, [esp + 0xf]
mov dword [esp + 0xa], eax
push dword [esp + 1]
pop dword [esp + 2]
lea esp, [esp + 1]
shr eax, 0x10
pushal
mov dword [esp + 4], ecx
mov byte [esp + 8], cl
pop word [esp + 4]
mov word [esp + 0x12], sp
mov byte [esp + 0x19], dh
pop dword [esp + 1]
pop word [esp + 0xd]
lea esp, [esp + 0x2c]
mov esi, 0xff
sub esp, 2
mov word [esp], bx
push sp
mov word [esp], ax
push word [esp + 3]
cmc
lea esp, [esp + 2]
and eax, esi
push ecx
mov dword [esp], esi
mov byte [esp], al
push word [esp + 3]
lea esp, [esp + 2]
lea esp, [esp + 8]
mov eax, dword [eax*4 + 0x51eecc]
xor eax, 0x1000000
mov edi, edx
shr edi, 8
and edi, esi
mov edi, dword [edi*4 + 0x51eecc]
and edi, 0xff0000
mov ebx, dword [ecx + 4]
and eax, 0xff000000
pushfd
mov word [esp], sp
push word [esp + 3]
cmc
cmc
push dword [esp + 3]
lea esp, [esp + 2]
xor eax, edi
push bx
mov byte [esp], cl
lea esp, [esp + 1]
push ecx
mov dword [esp], esp
mov word [esp + 2], bx
push si
mov dword [esp], edi
lea esp, [esp + 3]
lea esp, [esp + 0xc]
mov edi, edx
shr edi, 0x18
movzx edi, byte [edi*4 + 0x51eecc]
xor eax, edi
mov edi, edx
and edi, esi
mov edi, dword [edi*4 + 0x51eecc]
mov ebp, 0xff00
cmc
clc
stc
sub esp, 3
mov byte [esp], al
push word [esp + 2]
lea esp, [esp + 1]
and edi, ebp
pushal
push word [esp + 0xc]
mov dword [esp + 0x14], esp
push dword [esp + 0x11]
lea esp, [esp + 2]
lea esp, [esp + 0x28]
xor eax, edi
xor eax, dword [ecx]
lea edi, [ecx + 0x10]
pushfd
mov word [esp], cx
xor ebx, eax
pushfd
push word [esp + 1]
push dword [esp + 2]
push ebx
push dword [esp + 3]
lea esp, [esp + 7]
push word [esp + 7]
push word [esp + 1]
lea esp, [esp + 3]
lea esp, [esp + 0x10]
mov dword [edi], eax
mov eax, dword [ecx + 8]
pushal
mov word [esp + 0x15], cx
pop word [esp + 0x16]
sub esp, 0
mov dword [esp + 0x14], ebp
mov word [esp + 0xb], di
lea esp, [esp + 8]
pop dword [esp + 3]
lea esp, [esp + 1]
lea esp, [esp + 1]
xor eax, ebx
pushal
mov byte [esp + 0x19], bl
push word [esp]
push eax
lea esp, [esp + 0xc]
mov dword [esp + 1], ecx
pushfd
push di
push dword [esp + 0x1a]
lea esp, [esp + 0x34]
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], eax
clc
pushfd
xor edx, eax
pushal
lea esp, [esp + 0x1f]
lea esp, [esp]
mov byte [esp], al
push dx
push esp
push word [esp + 4]
lea esp, [esp + 1]
lea esp, [esp + 0xc]
push eax
mov eax, ecx
lea eax, [eax + 0x1c]
mov dword [eax], edx
pop eax
call fcn.0055645c
mov eax, edi
mov edx, dword [eax + 0xc]
pushal
push bp
push esi
lea ebx, [ecx + edi]
bswap si
lea esp, [esp + 2]
mov dword [esp + 0x1c], edx
pushal
lea esp, [esp + 0x24]
popal
push ax
pushfd
lea esp, [esp]
pushfd
mov byte [esp + 8], bh
mov dword [esp + 5], esi
lea esp, [esp + 2]
shr ecx, 8
pushfd
push dword [esp]
mov word [esp], cx
pop dword [esp]
push bp
lea esp, [esp + 2]
lea esp, [esp + 0xc]
mov edi, edx
and ecx, esi
mov ecx, dword [ecx*4 + 0x51eecc]
pushal
pushfd
pop dword [esp + 0x16]
lea esp, [esp + 0x18]
mov byte [esp + 2], bl
push esi
push edx
push dword [esp]
pop dword [esp + 2]
shr edi, 0x10
push di
mov byte [esp], dl
lea esp, [esp + 1]
lea esp, [esp]
mov byte [esp], bh
pushal
pushal
lea esp, [esp + 1]
lea esp, [esp + 0x50]
and edi, esi
mov edi, dword [edi*4 + 0x51eecc]
jmp 0x59f6f9