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

Disassembly:
sub esp, 0x30
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
push ebx
mov ebx, dword [eax + 8]
mov dword [esp + 0x20], ecx
push ebp
mov ebp, dword [eax + 4]
push esi
mov esi, dword [ecx + 0x18]
mov ecx, dword [eax]
mov eax, dword [esi + 0x14]
push edi
mov edi, dword [esi]
xor edi, ecx
mov ecx, dword [esi + 4]
xor ecx, ebp
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 8]
xor ecx, ebx
mov ebx, dword [esi + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0xc]
xor ecx, edx
mov edx, dword [esi + 0x18]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x44], eax
mov al, byte [0x101a8754]
add esi, 0x20
test al, al
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
jne 0x1007f6c1
call fcn.10084580
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
xor ebp, ebp
xor eax, eax
jmp 0x1007f6d0
mov ebp, dword [esp + 0x14]
jmp 0x1007f6d0
and ebp, dword [eax + 0x101493f0]
mov dword [esp + 0x14], ebp
add eax, dword [0x101957dc]
cmp eax, 0x400
jb 0x1007f6c7
mov ebp, dword [esp + 0x14]
mov eax, dword [0x101497ec]
and ebp, eax
or edi, ebp
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x1c]
mov eax, ebp
or edi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x10]
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x14]
movzx edi, al
shr eax, 8
mov dword [esp + 0x10], ebp
xor ecx, dword [edi*4 + 0x101493f0]
movzx edi, al
mov edi, dword [edi*4 + 0x101493f0]
ror edi, 8
mov dword [esp + 0x18], edi
shr eax, 8
movzx edi, al
mov edi, dword [edi*4 + 0x101493f0]
ror edi, 0x10
mov dword [esp + 0x28], edi
shr eax, 8
mov edi, dword [eax*4 + 0x101493f0]
mov eax, dword [esp + 0x10]
ror edi, 0x18
movzx ebp, al
mov ebp, dword [ebp*4 + 0x101493f0]
xor ebp, edi
shr eax, 8
xor edx, ebp
movzx edi, al
mov edi, dword [edi*4 + 0x101493f0]
ror edi, 8
mov dword [esp + 0x14], edi
shr eax, 8
movzx edi, al
mov edi, dword [edi*4 + 0x101493f0]
ror edi, 0x10
mov dword [esp + 0x20], edi
shr eax, 8
mov edi, dword [eax*4 + 0x101493f0]
mov eax, dword [esp + 0x1c]
ror edi, 0x18
movzx ebp, al
mov ebp, dword [ebp*4 + 0x101493f0]
xor ebp, edi
xor ebp, dword [esp + 0x28]
xor dword [esp + 0x44], ebp
shr eax, 8
movzx edi, al
mov edi, dword [edi*4 + 0x101493f0]
ror edi, 8
mov dword [esp + 0x28], edi
shr eax, 8
movzx edi, al
mov edi, dword [edi*4 + 0x101493f0]
ror edi, 0x10
shr eax, 8
mov dword [esp + 0x1c], edi
mov edi, dword [eax*4 + 0x101493f0]
mov eax, dword [esp + 0x24]
movzx ebp, al
mov ebp, dword [ebp*4 + 0x101493f0]
ror edi, 0x18
xor ebp, edi
xor ebp, dword [esp + 0x20]
xor ebp, dword [esp + 0x18]
xor ebx, ebp
mov ebp, dword [esp + 0x44]
shr eax, 8
movzx edi, al
mov edi, dword [edi*4 + 0x101493f0]
shr eax, 8
ror edi, 8
xor ebp, edi
movzx edi, al
mov edi, dword [edi*4 + 0x101493f0]
shr eax, 8
mov eax, dword [eax*4 + 0x101493f0]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x28]
ror edi, 0x10
xor edi, ebp
mov ebp, dword [esp + 0x14]
xor edx, edi
mov edi, dword [esp + 0x1c]
ror eax, 0x18
xor eax, edi
xor eax, ebp
xor ecx, eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
shr eax, 1
dec eax
mov dword [esp + 0x24], eax
jmp 0x1007f870
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
lea esp, [esp]
mov edi, dword [esi + 8]
mov ebp, dword [esi + 4]
movzx eax, cl
mov eax, dword [eax*4 + 0x10149ff0]
xor eax, edi
shr ecx, 8
mov dword [esp + 0x10], eax
movzx eax, cl
mov edi, dword [eax*4 + 0x10149bf0]
xor edi, ebp
mov ebp, dword [esi]
shr ecx, 8
movzx eax, cl
mov eax, dword [eax*4 + 0x101497f0]
xor eax, ebp
movzx ebp, dl
xor edi, dword [ebp*4 + 0x10149ff0]
shr edx, 8
mov dword [esp + 0x1c], edi
movzx edi, dl
mov ebp, dword [edi*4 + 0x10149bf0]
shr edx, 8
mov dword [esp + 0x18], edx
movzx edx, dl
mov edi, dword [edx*4 + 0x101497f0]
mov edx, dword [esi + 0xc]
shr ecx, 8
mov ecx, dword [ecx*4 + 0x101493f0]
xor ecx, edi
xor ecx, edx
mov edx, dword [esp + 0x44]
movzx edi, dl
shr edx, 8
xor eax, ebp
mov ebp, dword [edi*4 + 0x10149ff0]
movzx edi, dl
shr edx, 8
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x18]
shr edx, 8
mov edx, dword [edx*4 + 0x101493f0]
xor eax, ebp
mov ebp, dword [edi*4 + 0x10149bf0]
movzx edi, byte [esp + 0x44]
xor ecx, ebp
mov ebp, dword [edi*4 + 0x101497f0]
mov edi, dword [esp + 0x10]
xor edx, ebp
xor edi, edx
movzx edx, bl
mov ebp, dword [edx*4 + 0x10149ff0]
shr ebx, 8
movzx edx, bl
xor ecx, ebp
mov ebp, dword [edx*4 + 0x10149bf0]
mov edx, dword [esp + 0x44]
xor edi, ebp
mov dword [esp + 0x10], edi
shr ebx, 8
shr edx, 8
mov edx, dword [edx*4 + 0x101493f0]
movzx edi, bl
mov ebp, dword [edi*4 + 0x101497f0]
mov edi, dword [esp + 0x1c]
xor edx, ebp
xor edi, edx
movzx edx, cl
mov edx, dword [edx*4 + 0x10149ff0]
mov dword [esp + 0x1c], edi
xor edx, dword [esi + 0x18]
shr ecx, 8
shr ebx, 8
mov ebp, dword [ebx*4 + 0x101493f0]
mov ebx, dword [esi + 0x14]
mov dword [esp + 0x18], edx
movzx edx, cl
mov edi, dword [edx*4 + 0x10149bf0]
xor eax, ebp
xor edi, ebx
shr ecx, 8
mov edx, dword [esp + 0x10]
movzx ebx, dl
xor edi, dword [ebx*4 + 0x10149ff0]
mov dword [esp + 0x44], edi
shr edx, 8
movzx ebx, cl
mov ebp, dword [ebx*4 + 0x101497f0]
mov ebx, dword [esi + 0x10]
movzx edi, dl
mov edi, dword [edi*4 + 0x10149bf0]
xor edi, ebp
xor ebx, edi
shr edx, 8
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1c]
movzx edi, dl
mov ebp, dword [edi*4 + 0x10149ff0]
shr edx, 8
xor ebx, ebp
shr ecx, 8
mov ebp, dword [ecx*4 + 0x101493f0]
movzx edi, dl
xor ebp, dword [edi*4 + 0x10149bf0]
mov ecx, dword [esp + 0x10]
movzx edi, cl
xor ebp, dword [edi*4 + 0x101497f0]
mov edi, dword [esi + 0x1c]
xor edi, ebp
movzx ebp, al
xor edi, dword [ebp*4 + 0x10149ff0]
shr eax, 8
mov dword [esp + 0x20], edi
movzx edi, al
mov ebp, dword [edi*4 + 0x10149bf0]
shr edx, 8
shr ecx, 8
mov ecx, dword [ecx*4 + 0x101493f0]
movzx edi, dl
xor ecx, ebp
mov ebp, dword [edi*4 + 0x101497f0]
mov edi, dword [esp + 0x18]
xor ecx, ebp
mov ebp, dword [esp + 0x44]
shr eax, 8
xor edi, ecx
movzx ecx, al
shr edx, 8
mov edx, dword [edx*4 + 0x101493f0]
mov dword [esp + 0x18], edi
xor edx, dword [ecx*4 + 0x101497f0]
shr eax, 8
xor ebp, edx
mov edx, dword [eax*4 + 0x101493f0]
mov eax, dword [esp + 0x24]
xor ebx, edx
add esi, 0x20
dec eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x24], eax
jne 0x1007f864
xor edx, edx
xor eax, eax
lea esp, [esp]
mov ebp, dword [eax + 0x101482f0]
add eax, dword [0x101957dc]
and edx, ebp
cmp eax, 0x100
jb 0x1007faa0
mov ebp, dword [0x101483ec]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
and edx, ebp
or ecx, edx
or eax, edx
or ebx, edx
or edi, edx
mov dword [esp + 0x14], edx
movzx edx, cl
mov dl, byte [edx + 0x101482f0]
shr ecx, 8
mov byte [esp + 0x37], dl
movzx edx, cl
mov dl, byte [edx + 0x101482f0]
shr ecx, 8
mov byte [esp + 0x32], dl
movzx edx, cl
mov dl, byte [edx + 0x101482f0]
shr ecx, 8
mov cl, byte [ecx + 0x101482f0]
mov byte [esp + 0x3d], dl
movzx edx, al
shr eax, 8
mov byte [esp + 0x38], cl
mov cl, byte [edx + 0x101482f0]
movzx edx, al
shr eax, 8
mov byte [esp + 0x33], cl
mov cl, byte [edx + 0x101482f0]
movzx edx, al
shr eax, 8
mov byte [esp + 0x3e], cl
mov cl, byte [edx + 0x101482f0]
mov dl, byte [eax + 0x101482f0]
movzx eax, bl
shr ebx, 8
mov byte [esp + 0x34], dl
mov byte [esp + 0x39], cl
mov cl, byte [eax + 0x101482f0]
movzx edx, bl
mov al, byte [edx + 0x101482f0]
shr ebx, 8
mov byte [esp + 0x3f], cl
mov byte [esp + 0x3a], al
movzx ecx, bl
mov dl, byte [ecx + 0x101482f0]
shr ebx, 8
mov al, byte [ebx + 0x101482f0]
mov byte [esp + 0x30], al
mov eax, edi
movzx ecx, al
shr eax, 8
mov byte [esp + 0x35], dl
mov dl, byte [ecx + 0x101482f0]
movzx ecx, al
shr eax, 8
mov byte [esp + 0x3b], dl
mov dl, byte [ecx + 0x101482f0]
movzx ecx, al
shr eax, 8
mov al, byte [eax + 0x101482f0]
mov byte [esp + 0x36], dl
mov dl, byte [ecx + 0x101482f0]
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0x48]
test eax, eax
mov byte [esp + 0x31], dl
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x20], edi
je 0x1007fc16
mov edx, dword [esi]
mov ebp, dword [eax]
mov ecx, dword [esp + 0x4c]
xor edx, ebp
mov ebp, dword [esp + 0x34]
xor edx, ebx
mov dword [ecx], edx
mov edx, dword [esi + 4]
xor edx, dword [eax + 4]
mov edi, dword [esp + 0x38]
xor edx, ebp
mov dword [ecx + 4], edx
mov edx, dword [esi + 8]
xor edx, dword [eax + 8]
xor edx, edi
mov dword [ecx + 8], edx
mov edx, dword [esi + 0xc]
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0x3c]
pop edi
xor edx, esi
pop esi
xor edx, eax
pop ebp
mov dword [ecx + 0xc], edx
pop ebx
add esp, 0x30
ret 0xc
mov ecx, dword [esi]
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x34]
xor ecx, ebx
mov dword [eax], ecx
mov edx, dword [esi + 4]
xor edx, edi
mov dword [eax + 4], edx
mov ecx, dword [esi + 8]
xor ecx, dword [esp + 0x38]
pop edi
mov dword [eax + 8], ecx
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x38]
pop esi
xor edx, ecx
pop ebp
mov dword [eax + 0xc], edx
pop ebx
add esp, 0x30
ret 0xc