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

Disassembly:
push esp
mov word [esp], sp
push dword [esp]
jmp 0x5a6358
lea esp, [esp + 8]
pop edi
mov bx, di
lea esi, [ecx*4]
jmp 0x5d3e18
mov di, word [esp]
jmp 0x5d2ba8
pushal
mov byte [esp + 0x1e], dh
pop word [esp + 0x13]
lea esp, [esp + 2]
jmp 0x5d2d9d
xchg bh, dh
jmp 0x5d2dd8
call fcn.005a64a6
push ebx
call fcn.005a648f
push esi
lea esi, [esi + edi]
bswap esi
jmp 0x5d2b06
call int.005d3f7d
pushal
mov byte [esp + 8], ch
pop word [esp + 9]
jmp 0x5d3e20
call 0x5d3e5b
jmp 0x5d3ebc
push edi
call 0x5d2b0d
inc ebp
mov esi, ecx
lea esp, [esp + 4]
jmp 0x5d2b19
call fcn.005be633
jmp 0x5d2c94
mov eax, dword [esp]
lea edx, [esi + ebx*4 + 8]
push edx
lea esp, [esp + 4]
jmp 0x5d2bbe
mov byte [esp + 1], ch
lea esp, [esp + 4]
jle 0x5a6385
mov edx, esi
sub edi, eax
jmp 0x5d2b59
mov dword [ebp - 8], eax
cmc
lea esp, [esp + 0x1c]
test ebx, ebx
push edx
jmp 0x5d2b77
mov eax, dword [edx - 8]
btc edi, ebx
mov di, 0x99a7
jmp 0x5d2bc6
lea ecx, [esi + 8]
jmp 0x5a636e
mov edi, dword [ecx - 8]
call 0x5d2bcf
add esp, 3
add esp, 0
mov byte [esp], ch
lea esp, [esp + 1]
jmp 0x5d2c3b
shl ebx, 2
sub esp, 0x18
sub esp, 4
mov byte [esp + 5], ah
mov dword [esp + 0x13], eax
jmp 0x5d2b9b
add dword [ebp - 4], 4
stc
push edx
call fcn.005d2c14
mov dword [edx - 8], edi
xor di, 0x5c32
jmp 0x5d2c6e
push esi
mov esi, ecx
lea esi, [esi - 4]
jmp 0x5d2c7a
mov edi, dword [esi]
pop esi
mov dword [ecx - 4], eax
push edx
pushal
jmp 0x5d2d09
and dword [ebp - 4], 0
mov bl, byte [esp]
mov ebx, eax
jmp 0x5d2be9
mov dword [esp + 0x10], ecx
pushal
call fcn.005d2ca2
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [edx], edi
jmp 0x5d2cec
push ebx
pushal
mov bx, 0x5575
mov esi, eax
xchg esi, ebx
jmp 0x5d2cbb
mov edi, dword [ecx + 4]
push esi
mov esi, ecx
jmp 0x5d2d11
mov eax, dword [edx]
pushal
mov dword [edx - 4], edi
jmp 0x5d2ce0
lea esi, [esi + 4]
mov dword [esi], eax
pop esi
mov dword [edx + 4], edi
jmp 0x5d2d20
lea esp, [esp + 0x48]
sub ebx, 4
stc
pushal
jmp 0x5d2d70
mov dword [esp], esi
lea esp, [esp + 4]
cmp dword [ebp - 4], ebx
call fcn.005d2d41
mov edx, 0x39caaf3f
int1
xchg edx, eax
or eax, 0x648def9c
and al, 0x20
lea esp, [esp + 0x20]
add ecx, 0x10
sub edx, 0x10
push esp
jmp 0x5d2d57
lea esp, [esp + 0x1c]
cmp eax, 1
call fcn.005d2d7d
lea esp, [esp + 4]
jle 0x5a634a
rcr ch, 5
mov cl, ch
not bx
jmp 0x5d2dee
mov dword [ebp - 4], ecx
mov ecx, 0xff
jmp 0x5a639b
movzx ebx, byte [esi + 0x11]
jmp 0x5d2ed2
lea edx, [ecx + edx]
lea ecx, [eax - 1]
mov edi, 0x536abf0
bsf bx, ax
jmp 0x5d2dcb
mov edx, dword [esi]
btr edi, edx
pushal
mov bx, word [esp]
jmp 0x5d2e31
bswap esi
setge ah
mov dword [esp], edx
sub esp, 0xe
lea esp, [esp + 2]
jmp 0x5d2eba
add esi, 0x10
cmp di, 0xa79a
mov edx, esi
jmp 0x5d2e21
lea ebp, [ebp*4]
lea ebp, reloc.KERNEL32.dll_DuplicateHandle
mov ebx, dword [ebp]
pop ebp
jmp 0x5d2e47
push esi
mov esi, edi
lea esi, [esi*4]
jmp 0x5d2e84
lea esi, reloc.KERNEL32.dll_DuplicateHandle
mov edi, dword [esi]
pop esi
pushal
sub esp, 0xc
add esp, 0xb
jmp 0x5d2ef9
shr edi, 0x18
sub esp, 0x18
push word [esp + 7]
lea esp, [esp + 2]
jmp 0x5d2e74
lea esp, [esp + 0xc]
popal
jmp 0x5d2e9f
push ebp
pushal
mov dword [esp + 8], ebx
popal
jmp 0x5d2e61
push word [esp + 5]
push dword [esp + 4]
lea esp, [esp + 2]
jmp 0x5d2f0d
push word [esp + 7]
lea esp, [esp + 3]
and edi, ecx
sub esp, 8
mov byte [esp + 2], ah
jmp 0x5d2edb
mov edi, dword [edi*4 + reloc.KERNEL32.dll_DuplicateHandle]
jmp 0x5d2f79
mov ch, 0
and dh, byte [edx + ebp + 0x2179bc4d]
lea ebx, [esi*4]
mov bl, 0xe
movzx ebx, byte [esi + 2]
clc
call fcn.005d2f3c
jne 0x5d2f4b
jo 0x5d2f82
loop 0x5d2f94
mov ch, 0x27
mov bh, 0xd2
and dword [ecx + reloc.KERNEL32.dll_DuplicateHandle], ebx
mov esi, 0x8dcb2189
and al, 0x44
and ebx, ecx
lea esp, [esp + 0x44]
xor edi, dword [ebx*4 + reloc.KERNEL32.dll_DuplicateHandle]
jmp 0x5d2f54
cmp byte [edx], dl
pop ebx
add bl, ch
int3
lea edi, [edx*4]
mov ebx, ebp
call fcn.005d25d8
and ebx, ecx
sub esp, 0x1e
pop dword [esp + 2]
pop word [esp + 0xb]
jmp 0x5d2ffc
pop word [esp + 7]
lea esp, [esp + 0x18]
movzx ebx, byte [esi + 5]
jmp 0x5d326c
lea esp, [esp + 0x20]
xor edi, dword [ebx*4 + reloc.KERNEL32.dll_DuplicateHandle]
mov bx, word [esp]
sub esp, 0x1a
mov byte [esp + 0xb], dh
jmp 0x5d2fdd
and edx, ecx
stc
mov edx, dword [edx*4 + reloc.KERNEL32.dll_DuplicateHandle]
stc
call fcn.005d3088
lea esp, [esp + 0x18]
xor edi, dword [ebx*4 + reloc.KERNEL32.dll_DuplicateHandle]
jmp 0x5d32f7
movzx ebx, byte [esi + 0xd]
push esp
mov byte [esp + 1], ah
call fcn.005d32d6
and edx, ecx
push edx
pop word [esp]
pushal
pop dword [esp + 0x16]
jmp 0x5d3390
mov cx, bx
lea edx, [ebp + 0xb7]
not bh
mov dword [esp], esi
sub esp, 0xa
jmp 0x5d3377
setbe dh
lea edx, [edx + edi]
push edi
pushal
jmp 0x5d3356
clc
lea esp, [esp + 2]
lea esp, [esp + 8]
popal
jmp 0x5d33e9
lea esp, [esp + 2]
lea esp, [esp + 0x50]
xor edi, dword [edx*4 + reloc.KERNEL32.dll_DuplicateHandle]
mov edx, dword [esp]
jmp 0x5d336d
lea edi, [edi + 0xc]
mov edx, dword [edi]
pop edi
call fcn.005d33ce
mov edi, dword [edi*4 + reloc.KERNEL32.dll_DuplicateHandle]
and ebx, ecx
lea esp, [esp + 0x44]
jmp 0x5d3466
movzx ebx, byte [esi + 0xe]
mov ebx, dword [ebx*4 + reloc.KERNEL32.dll_DuplicateHandle]
clc
clc
jmp 0x5d34a9
xor edi, dword [ebx*4 + reloc.KERNEL32.dll_DuplicateHandle]
lea ebx, [eax + edx]
jmp 0x5d3447
push eax
mov eax, edx
lea eax, [eax*4]
jmp 0x5d34e2
and edx, ecx
stc
sub esp, 0
push esp
sub esp, 0x18
jmp 0x5d3485
lea eax, reloc.KERNEL32.dll_DuplicateHandle
mov edx, dword [eax]
pop eax
call fcn.005d3491
and edx, ecx
clc
clc
call 0x5d34fa
mov bh, 0x60
jmp 0x5d3536
lea esp, [esp + 0x19]
lea esp, [esp + 1]
jmp 0x5d4fbd
lea esp, [esp + 0x44]
xor edi, dword [edx*4 + reloc.KERNEL32.dll_DuplicateHandle]
pushal
pop word [esp + 5]
mov word [esp + 0xc], bx
jmp 0x5d3520
je 0x5d3de5
add ch, bl
fimul word [edi]
or byte [esi], 0x28
std
push dword [ebx + 0x19]
pop esp
fimul word [ebx + ebp - 0x1a]
push ebx
scasb al, byte es:[edi]
xor esp, dword [ebx - reloc.KERNEL32.dll_DuplicateHandle]
mov eax, dword [reloc.KERNEL32.dll_DuplicateHandle]
push dword [esp + 2]
lea esp, [esp + 8]
jmp 0x5d3dc4
cmp dl, 0x5a
pushal
pushal
cmp dl, 0x5a
pushal
pushal
jmp 0x5d3e4b
lea esi, [esi - 0x55]
call fcn.005d38e0
lea esp, [esp + 2]
lea esp, [esp + 0x1c]
cmp dl, 0x61
call 0x5d3e31
jno 0x5d3dbf
and al, 1
lea esp, [esp + 3]
jmp 0x5d3e95
lea esp, [esp + 0x40]
jbe 0x5a65b9
ja 0x5a65d8
mov word [esp], di
call 0x5a6682
dec ecx
int3
mov word [esp + 0x1a], sp
lea esp, [esp + 0x20]
jbe 0x5a65b9
ja 0x5a667d
fist word [edx + ecx*8 - 0x53]
pop esp
jmp 0x55d801d6
jb 0x5a667d
cmp dl, 0x7a
pushal
mov word [esp + 0x18], dx
jmp 0x5d3e76
lea esp, [esp + 8]
cmp dl, 0x30
call fcn.005d3ea6
mov byte [eax], al
xchg esi, eax
int1
add byte [edi + 0x342dbd36], bh
invalid
lea esp, [esp + 4]
jne 0x5a639b
je 0x5a634a
sub esp, 0x14
cmc
pop dword [esp]
call fcn.005d3f3a
sbb eax, 0x93600191
nop
adc ecx, dword [edx + reloc.KERNEL32.dll_DuplicateHandle]
lea esp, [esp + 0x24]
je 0x5a65b9
jne 0x5d3ee7
retf 0xdb4b
lea esp, [esp + 4]
dec dword [ebp - 4]
mov dword [esi + 0xc], edi
push esp
jmp 0x5d3ed7