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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0xc
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x1d]
movzx eax, byte [eax + 0x1004c2c4]
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx]
xor eax, ecx
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx]
xor edx, eax
mov bl, dl
mov byte [ecx], bl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x1e]
movzx eax, byte [eax + 0x1004c2c4]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 1]
xor edx, eax
mov bl, dl
mov byte [ecx + 1], bl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x1f]
movzx eax, byte [eax + 0x1004c2c4]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 2]
xor edx, eax
mov bl, dl
mov byte [ecx + 2], bl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x1c]
movzx eax, byte [eax + 0x1004c2c4]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 3]
xor edx, eax
mov bl, dl
mov byte [ecx + 3], bl
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax]
shl eax, 1
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx]
sar ecx, 7
and ecx, 1
imul ecx, ecx, 0x1b
xor eax, ecx
mov bl, al
mov eax, dword [ebp - 0xc]
mov byte [eax], bl
mov byte [ebp - 0x11], 4
movzx eax, byte [ebp - 0x11]
cmp eax, 0x10
jge 0x1000374f
movzx eax, byte [ebp - 0x11]
sub eax, 4
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx]
xor esi, eax
mov eax, esi
mov bl, al
mov byte [edx + ecx], bl
movzx eax, byte [ebp - 0x11]
sub eax, 3
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx + 1]
xor esi, eax
mov eax, esi
mov bl, al
mov byte [edx + ecx + 1], bl
movzx eax, byte [ebp - 0x11]
sub eax, 2
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx + 2]
xor esi, eax
mov eax, esi
mov bl, al
mov byte [edx + ecx + 2], bl
movzx eax, byte [ebp - 0x11]
sub eax, 1
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx + 3]
xor esi, eax
mov eax, esi
mov bl, al
mov byte [edx + ecx + 3], bl
movzx eax, byte [ebp - 0x11]
add eax, 4
mov cl, al
mov byte [ebp - 0x11], cl
jmp 0x100036a3
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0xc]
movzx eax, byte [eax + 0x1004c2c4]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x10]
xor edx, eax
mov bl, dl
mov byte [ecx + 0x10], bl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0xd]
movzx eax, byte [eax + 0x1004c2c4]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x11]
xor edx, eax
mov bl, dl
mov byte [ecx + 0x11], bl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0xe]
movzx eax, byte [eax + 0x1004c2c4]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x12]
xor edx, eax
mov bl, dl
mov byte [ecx + 0x12], bl
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0xf]
movzx eax, byte [eax + 0x1004c2c4]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x13]
xor edx, eax
mov bl, dl
mov byte [ecx + 0x13], bl
mov byte [ebp - 0x11], 0x14
movzx eax, byte [ebp - 0x11]
cmp eax, 0x20
jge 0x10003873
movzx eax, byte [ebp - 0x11]
sub eax, 4
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx]
xor esi, eax
mov eax, esi
mov bl, al
mov byte [edx + ecx], bl
movzx eax, byte [ebp - 0x11]
sub eax, 3
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx + 1]
xor esi, eax
mov eax, esi
mov bl, al
mov byte [edx + ecx + 1], bl
movzx eax, byte [ebp - 0x11]
sub eax, 2
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx + 2]
xor esi, eax
mov eax, esi
mov bl, al
mov byte [edx + ecx + 2], bl
movzx eax, byte [ebp - 0x11]
sub eax, 1
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx + 3]
xor esi, eax
mov eax, esi
mov bl, al
mov byte [edx + ecx + 3], bl
movzx eax, byte [ebp - 0x11]
add eax, 4
mov cl, al
mov byte [ebp - 0x11], cl
jmp 0x100037c7
add esp, 0xc
pop esi
pop ebx
pop ebp
ret