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

Disassembly:
call fcn.0059f19e
mov byte [0x1277e76b], al
loope 0x512c40
mov eax, 0x33c0a131
and dword [esi], 0xffffffa4
xor eax, dword [ebx - 0x3d745bda]
mov eax, edx
lea eax, [eax + 4]
mov dword [eax], edi
pop eax
sub ebx, 4
add ecx, 0x10
sub edx, 0x10
jmp 0x59f2d3
pop esi
or byte [eax], al
out dx, eax
jae 0x512c2a
xchg byte [ebp - 0x68], dh
inc edx
push esp
and cl, byte [edi - 0x3c]
mov edi, dword es:[ecx + 4]
mov edi, dword [ecx + 4]
push ebp
mov ebp, ecx
lea ebp, [ebp + 4]
mov dword [ebp], eax
pop ebp
push eax
jmp 0x512c2e
cmp eax, 1
jle 0x59f50d
lea ecx, [eax - 1]
push esi
mov esi, ebp
lea esi, [esi - 4]
mov dword [esi], ecx
pop esi
mov ecx, 0xff
jmp 0x59f492
push edi
mov edi, edx
lea edi, [edi - 8]
mov eax, dword [edi]
pop edi
push edx
mov edx, ecx
lea edx, [edx - 8]
mov edi, dword [edx]
pop edx
add dword [ebp - 4], 4
mov dword [ecx - 8], eax
mov eax, dword [edx - 4]
push eax
mov eax, edx
lea eax, [eax - 8]
mov dword [eax], edi
pop eax
push edx
mov edx, ecx
lea edx, [edx - 4]
mov edi, dword [edx]
pop edx
mov dword [ecx - 4], eax
mov eax, dword [edx]
push ecx
pushal
bswap edi
mov eax, esp
mov dword [esp + 0x18], edx
push di
mov byte [esp], bh
lea esp, [esp]
push word [esp]
mov word [esp], cx
pop word [esp]
pushal
lea esp, [esp + 2]
lea esp, [esp + 0x20]
popal
lea ecx, [ecx - 4]
mov dword [ecx], edi
pop ecx
mov edi, dword [ecx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
push eax
mov eax, edx
mov dword [eax], edi
pop eax
jmp 0x512c50
jmp 0x512c1a
cmp dword [ebp - 4], ebx
jl 0x512cdc
mov eax, dword [ebp - 8]
jmp 0x512c6d
xchg al, bh
lea edx, [esp + edx]
setb ah
mov bx, 0x42da
mov dword [esp + 0x14], edi
pushal
jmp 0x59f611
lea esp, [esp + 3]
and ebx, ecx
push esi
push word [esp + 3]
lea esp, [esp]
lea esp, [esp + 5]
lea esp, [esp + 1]
lea esp, [esp + 0x18]
xor edi, dword [ebx*4 + 0x51facc]
movzx ebx, byte [esi + 2]
mov ebx, dword [ebx*4 + 0x51eecc]
and ebx, ecx
xor edi, dword [ebx*4 + 0x51f6cc]
movzx ebx, byte [esi + 5]
and edx, ecx
mov edx, dword [edx*4 + 0x51eecc]
and edx, ecx
xor edi, dword [edx*4 + 0x51fecc]
mov edx, dword [esi + 4]
mov dword [esi], edi
push ecx
mov ecx, ebx
lea ecx, [ecx*4]
lea ecx, [ecx + 0x51eecc]
mov ebx, dword [ecx]
pop ecx
mov edi, edx
pushfd
push dword [esp]
mov byte [esp + 6], cl
shr edi, 0x18
pushal
push dword [esp + 0xd]
pop word [esp + 0x10]
lea esp, [esp + 2]
lea esp, [esp + 0x28]
push edx
pushal
bswap ax
bswap bx
jmp 0x59f3d8
movzx ebx, byte [esi + 0x11]
mov ebx, dword [ebx*4 + 0x51eecc]
add esi, 0x10
mov edx, dword [esi]
mov edi, edx
pushal
mov dword [esp + 0xe], esp
lea esp, [esp + 2]
mov byte [esp + 0x1a], dl
lea esp, [esp + 2]
shr edi, 0x18
push ebx
lea esp, [esp + 0x20]
push edx
mov edx, edi
lea edx, [edx*4]
lea edx, [edx + 0x51eecc]
mov edi, dword [edx]
pop edx
and edi, ecx
mov edi, dword [edi*4 + 0x51f2cc]
push cx
sub esp, 0x17
mov word [esp + 9], di
mov byte [esp + 9], al
mov word [esp + 0xb], di
pop word [esp + 9]
push dword [esp + 0x13]
push dword [esp + 7]
pop dword [esp + 0xf]
jmp 0x59f3f8
pop edi
pop esi
pop ebx
leave
ret
and edi, ecx
mov edi, dword [edi*4 + 0x51f2cc]
sub esp, 0xf
pop dword [esp + 3]
push dword [esp + 4]
mov byte [esp + 0xc], cl
push eax
sub esp, 0x12
pop dword [esp + 5]
pop dword [esp + 7]
pop dword [esp + 8]
lea esp, [esp + 1]
and ebx, ecx
push edx
mov dword [esp], esp
mov byte [esp + 2], cl
push word [esp + 3]
push word [esp + 4]
lea esp, [esp + 0x20]
xor edi, dword [ebx*4 + 0x51facc]
movzx ebx, byte [esi + 0xa]
push eax
mov eax, ebx
lea eax, [eax*4]
lea eax, [eax + 0x51eecc]
mov ebx, dword [eax]
pop eax
and ebx, ecx
pushal
lea esp, [esp + 0x20]
xor edi, dword [ebx*4 + 0x51f6cc]
movzx ebx, byte [esi + 0xd]
and edx, ecx
push ebx
pushal
push ax
pop si
lea esi, [ecx + ebp]
setp cl
bswap esi
mov ebx, 0x65c14f86
lea eax, [eax + ebp]
xchg ecx, edi
bswap si
mov dword [esp + 0x10], edx
push esi
push dword [esp + 2]
pop dword [esp]
lea esp, [esp + 4]
popal
lea ebx, [ebx*4]
lea ebx, [ebx + 0x51eecc]
mov edx, dword [ebx]
pop ebx
stc
sub esp, 6
stc
lea esp, [esp + 2]
push dword [esp]
and edx, ecx
jmp 0x59f83c
lea esp, [esp + 0x20]
popal
lea edx, [edx*4]
lea edx, [edx + 0x51eecc]
mov edi, dword [edx]
pop edx
and edi, ecx
mov edi, dword [edi*4 + 0x51f2cc]
and ebx, ecx
xor edi, dword [ebx*4 + 0x51facc]
movzx ebx, byte [esi + 6]
mov ebx, dword [ebx*4 + 0x51eecc]
and ebx, ecx
xor edi, dword [ebx*4 + 0x51f6cc]
movzx ebx, byte [esi + 9]
stc
push edi
mov word [esp], bx
and edx, ecx
pushfd
push word [esp + 1]
pop word [esp]
lea esp, [esp + 1]
mov word [esp], ax
mov word [esp], sp
push word [esp + 2]
mov byte [esp + 3], al
lea esp, [esp + 1]
lea esp, [esp + 8]
mov edx, dword [edx*4 + 0x51eecc]
cmc
push ebx
pop word [esp]
lea esp, [esp + 2]
and edx, ecx
pushfd
mov byte [esp + 2], dl
mov dword [esp], edx
lea esp, [esp + 4]
xor edi, dword [edx*4 + 0x51fecc]
mov edx, dword [esi + 8]
mov dword [esi + 4], edi
push ecx
mov ecx, ebx
lea ecx, [ecx*4]
lea ecx, [ecx + 0x51eecc]
mov ebx, dword [ecx]
pop ecx
pushal
mov si, word [esp]
mov bx, word [esp]
xchg ebp, eax
mov cl, byte [esp]
mov ah, dh
mov dword [esp], edx
pushfd
push word [esp + 3]
lea esp, [esp + 2]
lea esp, [esp + 4]
popal
shr edi, 0x18
mov edi, dword [edi*4 + 0x51eecc]
jmp 0x59f53f
push cx
lea esp, [esp + 2]
lea esp, [esp + 8]
xor edi, dword [edx*4 + 0x51fecc]
mov edx, dword [esi + 0xc]
push ebx
mov ebx, esi
lea ebx, [ebx + 8]
mov dword [ebx], edi
pop ebx
push ebp
pushal
bswap dx
xchg edi, eax
xchg ah, dh
bswap ax
mov dh, al
xchg edi, eax
mov di, bx
pushfd
mov dword [esp + 0xc], ebx
pushfd
push word [esp]
mov dword [esp], edi
mov byte [esp + 4], ch
mov word [esp + 1], bx
mov dword [esp], esp
mov word [esp + 1], ax
push word [esp]
pop dword [esp]
lea esp, [esp + 8]
popal
lea ebp, [ebp*4]
lea ebp, [ebp + 0x51eecc]
mov ebx, dword [ebp]
pop ebp
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x51eecc]
sub esp, 9
sub esp, 0xc
add esp, 0
lea esp, [esp + 9]
and edi, ecx
push si
push word [esp]
mov byte [esp], bl
pop word [esp]
push word [esp]
lea esp, [esp + 0x10]
push edx
pushal
lea ebp, [edx + esi]
xchg bh, cl
xchg bp, cx
mov bh, byte [esp]
mov bx, word [esp]
xchg ebp, edx
lea eax, [0x4ab0135e]
mov bl, dh
mov dword [esp + 0x14], edi
pushal
push word [esp + 5]
pop dword [esp + 9]
push word [esp + 8]
push dword [esp + 4]
lea esp, [esp + 0x24]
popal
lea edx, [edx*4]
lea edx, [edx + 0x51f2cc]
mov edi, dword [edx]
pop edx
and ebx, ecx
xor edi, dword [ebx*4 + 0x51facc]
movzx ebx, byte [esi + 0xe]
mov ebx, dword [ebx*4 + 0x51eecc]
and edx, ecx
push edi
mov edi, edx
lea edi, [edi*4]
lea edi, [edi + 0x51eecc]
mov edx, dword [edi]
pop edi
and ebx, ecx
xor edi, dword [ebx*4 + 0x51f6cc]
and edx, ecx
xor edi, dword [edx*4 + 0x51fecc]
dec dword [ebp - 4]
mov dword [esi + 0xc], edi
jne 0x512c88
je 0x59f50d
cwde
adc al, byte [eax + 0x5be712e7]
rol byte [esi + 0x21], 1
shl byte [edx + 1], 1
test ch, dh
mov al, byte [0x244c8966]
add ah, byte [esi - 1]
je 0x59f9a7
mov word [esp + 2], cx
push word [esp + 2]
pop dword [esp]
push di
add cl, byte [edi + 0x57662404]
jmp 0x59f9b6
leave
ret 8
sub eax, 0x1c75e566
out dx, eax
or dword [ebx], edx
wait
or ebp, dword [esi - 0x63]
jo 0x59fa1f
push 0xffffffffffffff88
pop esp
and al, 1
mov byte [esp + 1], bl
pushfd
lea esp, [esp + 2]
lea esp, [esp + 8]
popal
lea esi, [esi + 0x7c]
mov eax, dword [esi]
pop esi
mov dword [ebp - 0x18], eax
je 0x5a08f1
add byte [eax], al
push edi
mov edi, esi
lea edi, [edi + 0x20]
mov eax, dword [edi]
pop edi
test eax, eax
jne 0x5a0418
je 0x5a08f1
int1
jbe 0x59f9d1
cmp dword [esi - 0x64], 0x61
jmp 0x59fa6e
sar dword [eax], 0x42
les ebx, [ebp + ecx*4 + 0xc]
cmp dl, byte [edi - 0x73]
sbb al, 0x3e
mov dword [esp + 0x1c], eax
pushfd
push word [esp + 1]
push ecx
pop word [esp + 1]
push word [esp + 6]
pop word [esp + 5]
push di
pop word [esp + 3]
lea esp, [esp + 7]
lea esp, [esp + 1]
lea esp, [esp + 4]
popal
lea ecx, [ecx + 0x78]
mov esi, dword [ecx]
pop ecx
cmc
sub esp, 0x14
add esi, ecx
push ecx
pop word [esp]
lea esp, [esp]
mov byte [esp], cl
or al, 0x24
lea esp, [esp]
push sp
mov dword [esp], ecx
lea esp, [esp + 0x18]
push esi
pushal
mov dword [esp + 4], eax
pushfd
mov byte [esp + 1], ch
push word [esp]
jmp 0x59f97a
test eax, eax
jne 0x59ff11
jmp 0x59ff63
test eax, eax
jne 0x59ff9d
je 0x59ff43
push si
mov word [esp], sp
lea esp, [esp + 2]
popal
lea ecx, [ecx - 8]
jmp 0x5a008d
mov edi, 0xf006a0a
push dx
push word [esp]
jmp 0x5a00ac
cmp dword [ebp - 4], ebx
je 0x59ff43
jmp 0x59ff8a
push ecx
pushal
mov dl, 0x97
mov eax, dword [esp]
xchg edx, eax
lea edi, [eax + edi]
mov dword [esp + 0x18], ebp
jmp 0x59fef4
cmp dword [ebp - 4], ebx
jle 0x5a0486
jmp 0x59ff43
test eax, eax
jle 0x5a00dd
lea ebx, [edi - 1]
jmp 0x59ff63
mov eax, dword [ebp - 0xc]
jmp 0x59ff11
xor esi, esi
push edi
push word [esp + 1]
lea esp, [esp + 2]
lea esp, [esp + 4]
test ebx, ebx
jl 0x59ff9d
mov eax, dword [ebp - 0x10]
push ecx
pushal
not di
xchg dh, cl
xchg cl, bl
not cl
lea edx, [ecx + esi]
mov dx, 0x6133
mov dword [esp + 0x18], esi
pushal
pop dword [esp + 0xb]
pop dword [esp + 0xd]
mov dword [esp + 1], edi
lea esp, [esp + 0x18]
popal
lea ecx, [ecx*4]
lea ecx, [eax + ecx]
mov edx, dword [ecx]
pop ecx
add edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
call fcn.005723e1
test eax, eax
je 0x5a0061
inc esi
clc
clc
cmc
cmc
cmc
clc
sub esp, 0xc
cmp esi, ebx
push dx
push cx
push dword [esp + 3]
mov byte [esp + 4], cl
pop dword [esp]
lea esp, [esp + 3]
mov byte [esp], ch
lea esp, [esp + 1]
lea esp, [esp + 0xc]
jle 0x59ffce
jmp 0x59ff9d
movzx eax, word [edi + esi*2]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + eax*4]
add eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
jmp 0x59ff9d
mov edi, dword [ecx]
pop ecx
jmp 0x59ffba
push bx
lea edi, [edx + ebx]
mov edi, 0x67b14634
mov di, 0x761
xchg dword [esp], edi
lea esp, [esp + 2]
mov edi, dword [esp + 4]
pushal
mov dword [esp], ebp
lea esp, [esp + 0x28]
pop ebx
jmp 0x5a0166
inc edi
push eax
mov eax, ebp
lea eax, [eax - 4]
mov dword [eax], edi
pop eax
jmp 0x59ff63
pop esi
jmp 0x59f999
and dword [ebp - 4], 0
add eax, ecx
push ebx
mov ebx, dword [esi + 0x18]
push edi
mov edi, dword [esi + 0x24]
push ecx
mov ecx, ebp
lea ecx, [ecx - 0x10]
mov dword [ecx], eax
pop ecx
mov eax, dword [esi + 0x1c]
add edi, ecx
add eax, ecx
dec ebx
mov dword [ebp - 8], edi
push edi
pushal
xchg dx, cx
mov cx, word [esp]
mov ch, dh
mov cx, dx
mov edi, dword [esp]
mov ch, 0xf3
mov bl, 0xc
not ecx
setns cl
mov dword [esp], ebp
pushal
mov word [esp + 0x17], di
pop word [esp + 0xe]
push dword [esp + 0xc]
push word [esp + 0xe]
push word [esp]
lea esp, [esp + 2]
lea esp, [esp + 0x24]
popal
lea edi, [edi - 0x14]
mov dword [edi], eax
pop edi
js 0x59ffba
mov eax, dword [ebp - 4]
add eax, ebx
cdq
push edi
push word [esp + 3]
push word [esp]
pushal
sub eax, edx
pushfd
lea esp, [esp + 2]
mov word [esp], bp
lea esp, [esp + 2]
lea esp, [esp + 0x28]
pushal
mov ebx, 0x49925083
mov dh, ch
xchg dx, bp
mov ch, byte [esp]
push eax
push word [esp + 2]
xchg byte [esp + 3], ch
lea esp, [esp + 2]
mov dword [esp + 4], eax
pushal
pushal
lea esp, [esp + 0x19]
mov byte [esp + 0x25], cl
push esi
mov dword [esp + 0x1d], edx
mov byte [esp + 0x20], bl
push dword [esp + 0x21]
mov byte [esp + 7], al
lea esp, [esp + 3]
lea esp, [esp + 0x30]
popal
push edi
mov edi, ebp
lea edi, [edi - 0x10]
mov eax, dword [edi]
pop edi
sar edi, 1
mov edx, dword [eax + edi*4]
add edx, dword [ebp + 8]
push esi
pushal
bswap dx
mov ebx, dword [esp]
mov esi, edi
mov dx, 0x3b8f
not ch
mov dword [esp + 4], ebp
pushal
pop dword [esp + 0x10]
push edi
push dword [esp + 0x17]
lea esp, [esp + 7]
lea esp, [esp + 1]
lea esp, [esp + 0x1c]
popal
lea esi, [esi + 0xc]
mov eax, dword [esi]
pop esi
call fcn.0057236f
test eax, eax
jne 0x59ff2e
mov eax, dword [ebp - 8]
movzx eax, word [eax + edi*2]
push edx
mov edx, ebp
lea edx, [edx - 0x14]
mov ecx, dword [edx]
pop edx
mov eax, dword [ecx + eax*4]
add eax, dword [ebp + 8]
push ebx
mov ebx, ebp
lea ebx, [ebx - 0xc]
mov dword [ebx], eax
pop ebx
push sp
mov byte [esp], ch
add esp, 1
add esp, 0
push ebx
add esp, 2
pushfd
lea esp, [esp + 4]
push ecx
lea esp, [esp + 3]
cmp eax, esi
pushfd
push dword [esp + 3]
pop dword [esp]
push word [esp + 2]
push dword [esp]
push dword [esp + 2]
push dword [esp + 2]
lea esp, [esp + 0xd]
mov byte [esp + 2], ch
lea esp, [esp + 1]
lea esp, [esp + 8]
jb 0x59fecd
push ebx
pushal
lea edx, [edx + edx]
mov dh, 0x52
lea edi, [ebx - 0xce]
mov edi, ebx
lea ecx, [ebx + 0x5b]
mov dword [esp + 0x10], ebp
push sp
mov word [esp], cx
mov byte [esp], dh
mov word [esp], cx
mov word [esp], si
mov word [esp], ax
push bx
lea esp, [esp + 4]
popal
lea ebx, [ebx - 0x18]
mov ecx, dword [ebx]
pop ebx
push ax
mov word [esp], sp
stc
lea esp, [esp + 2]
add ecx, esi
push ebx
mov word [esp], bp
mov byte [esp], ch
mov word [esp + 1], dx
mov dword [esp], eax
pop word [esp]
push word [esp]
pop word [esp]
lea esp, [esp + 2]
cmc
pushal
push word [esp + 6]
push word [esp + 4]
clc
pop word [esp + 6]
lea esp, [esp + 0xc]
mov dword [esp + 1], ecx
lea esp, [esp + 2]
cmp eax, ecx
push dx
push word [esp]
pop word [esp]
lea esp, [esp + 2]
lea esp, [esp + 0x14]
jb 0x59feea
jae 0x59fecd
popfd
sbb eax, 0xce27d48d
mov byte [edi + eax*8 + 0x244c8908], al
sbb al, 0x57
mov dword [esp], eax
push word [esp + 3]
push dword [esp + 2]
jmp 0x5a081b
push dword [esp + 5]
mov dword [esp + 3], edx
mov byte [esp], dh
lea esp, [esp + 2]
jmp 0x5a08b6
pushal
push edi
mov dword [esp + 0x1c], edi
pushal
mov byte [esp + 3], al
push word [esp + 0x1c]
jmp 0x5a07dd
lea esp, [esp + 1]
push dword [esp + 4]
mov dword [esp + 8], ebp
lea esp, [esp + 1]
lea esp, [esp + 0xc]
popal
pushal
push word [esp + 9]
push dword [esp + 0x17]
mov word [esp + 0xf], bx
pop dword [esp + 0x14]
pop dword [esp + 0x14]
push word [esp + 7]
shr eax, 3
push bp
mov word [esp], sp
lea esp, [esp]
lea esp, [esp + 2]
lea esp, [esp + 0x20]
lea edx, [ecx + edi*8]
and eax, 0x3f
sub esp, 4
push ebx
pop word [esp + 3]
mov dword [esp], edx
lea esp, [esp + 2]
cmp edx, ecx
push bx
pushfd
lea esp, [esp + 5]
pushal
mov dword [esp + 0xa], eax
pop dword [esp + 0xd]
mov dword [esp + 6], edx
pushal
lea esp, [esp + 1]
lea esp, [esp + 0x40]
jae 0x5a07fa
inc dword [esi + 4]
jmp 0x5a07fa
lea esp, [esp + 0x28]
popal
shr ecx, 0x1d
add dword [esi + 4], ecx
mov dword [esi], edx
test edi, edi
je 0x5a1363
push ebx
push edx
mov edx, ebp
lea edx, [edx + 8]
mov ecx, dword [edx]
pop edx
mov cl, byte [ecx]
dec edi
mov byte [eax + esi + 0x18], cl
inc eax
inc dword [ebp + 8]
jmp 0x5a0dab
xor eax, eax
jmp 0x5a0166
test edi, edi
jne 0x5a08cc
pop ebx
jmp 0x5a1363
cmp eax, 0x40
jne 0x5a0bc1
xor ecx, ecx
lea eax, [esi + 0x1a]
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
shl edx, 8
sub esp, 0
cmc
or edx, ebx
pushfd
pop word [esp]
lea esp, [esp + 2]
movzx ebx, byte [eax - 1]
shl edx, 8
or edx, ebx
movzx ebx, byte [eax - 2]
shl edx, 8
or edx, ebx
push edi
pushal
bswap di
xchg dh, bl
mov di, cx
lea ebp, [edx + edx]
bswap dx
xchg ah, bl
mov dword [esp], ecx
push si
push dx
lea esp, [esp + 4]
popal
lea edi, [edi*4]
lea edi, [edi + ebp]
lea edi, [edi - 0x40]
mov dword [edi], edx
pop edi
inc ecx
add eax, 4
cmp ecx, 0x10
jb 0x5a0db9
lea ecx, [esi + 8]
lea eax, [ebp - 0x40]
call fcn.005723ec
xor eax, eax
jmp 0x5a0bc1
pop edi
leave
ret