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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
push 0x10
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x14]
push ecx
call fcn.0044f2d0
add esp, 0xc
mov byte [ebp - 2], 0
jmp 0x44d838
mov dl, byte [ebp - 2]
add dl, 1
mov byte [ebp - 2], dl
movzx eax, byte [ebp - 2]
cmp eax, 0xa
jge 0x44d8e4
movzx ecx, byte [ebp - 2]
movzx edx, byte [ecx + 0x459168]
movzx eax, byte [ebp - 0x14]
xor eax, edx
mov byte [ebp - 0x14], al
movzx ecx, byte [ebp - 7]
movzx edx, byte [ecx + str.cw]
movzx eax, byte [ebp - 0x14]
xor eax, edx
mov byte [ebp - 0x14], al
movzx ecx, byte [ebp - 6]
movzx edx, byte [ecx + str.cw]
movzx eax, byte [ebp - 0x13]
xor eax, edx
mov byte [ebp - 0x13], al
movzx ecx, byte [ebp - 5]
movzx edx, byte [ecx + str.cw]
movzx eax, byte [ebp - 0x12]
xor eax, edx
mov byte [ebp - 0x12], al
movzx ecx, byte [ebp - 8]
movzx edx, byte [ecx + str.cw]
movzx eax, byte [ebp - 0x11]
xor eax, edx
mov byte [ebp - 0x11], al
mov byte [ebp - 0x1a], 4
jmp 0x44d8b8
mov cl, byte [ebp - 0x1a]
add cl, 1
mov byte [ebp - 0x1a], cl
movzx edx, byte [ebp - 0x1a]
cmp edx, 0x10
jge 0x44d8df
movzx eax, byte [ebp - 0x1a]
movzx ecx, byte [ebp - 0x1a]
movzx edx, byte [ebp + ecx - 0x18]
movzx eax, byte [ebp + eax - 0x14]
xor eax, edx
movzx ecx, byte [ebp - 0x1a]
mov byte [ebp + ecx - 0x14], al
jmp 0x44d8af
jmp 0x44d82f
mov byte [ebp - 2], 0
jmp 0x44d8f3
mov dl, byte [ebp - 2]
add dl, 1
mov byte [ebp - 2], dl
movzx eax, byte [ebp - 2]
cmp eax, 0x10
jge 0x44d91e
movzx ecx, byte [ebp - 2]
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp + edx - 0x14]
mov edx, dword [ebp + 8]
movzx ecx, byte [edx + ecx]
xor ecx, eax
movzx edx, byte [ebp - 2]
mov eax, dword [ebp + 8]
mov byte [eax + edx], cl
jmp 0x44d8ea
mov byte [ebp - 2], 1
jmp 0x44d92d
mov cl, byte [ebp - 2]
add cl, 1
mov byte [ebp - 2], cl
movzx edx, byte [ebp - 2]
cmp edx, 0xa
jg 0x44dd10
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 8]
mov al, byte [ecx + 0x459278]
mov byte [edx], al
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 4]
mov eax, dword [ebp + 8]
mov cl, byte [edx + 0x459278]
mov byte [eax + 4], cl
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 8]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x459278]
mov byte [ecx + 8], dl
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0xc]
mov edx, dword [ebp + 8]
mov al, byte [ecx + 0x459278]
mov byte [edx + 0xc], al
mov ecx, dword [ebp + 8]
mov dl, byte [ecx + 0xd]
mov byte [ebp - 0x1a], dl
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 9]
mov edx, dword [ebp + 8]
mov al, byte [ecx + 0x459278]
mov byte [edx + 0xd], al
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 5]
mov eax, dword [ebp + 8]
mov cl, byte [edx + 0x459278]
mov byte [eax + 9], cl
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x459278]
mov byte [ecx + 5], dl
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x459278]
mov byte [ecx + 1], dl
mov eax, dword [ebp + 8]
mov cl, byte [eax + 2]
mov byte [ebp - 0x1a], cl
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xa]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x459278]
mov byte [ecx + 2], dl
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x459278]
mov byte [ecx + 0xa], dl
mov eax, dword [ebp + 8]
mov cl, byte [eax + 6]
mov byte [ebp - 0x1a], cl
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xe]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x459278]
mov byte [ecx + 6], dl
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x459278]
mov byte [ecx + 0xe], dl
mov eax, dword [ebp + 8]
mov cl, byte [eax + 3]
mov byte [ebp - 0x1a], cl
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 7]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x459278]
mov byte [ecx + 3], dl
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0xb]
mov edx, dword [ebp + 8]
mov al, byte [ecx + 0x459278]
mov byte [edx + 7], al
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xf]
mov eax, dword [ebp + 8]
mov cl, byte [edx + 0x459278]
mov byte [eax + 0xb], cl
movzx edx, byte [ebp - 0x1a]
mov eax, dword [ebp + 8]
mov cl, byte [edx + 0x459278]
mov byte [eax + 0xf], cl
mov byte [ebp - 0x1a], 0xf
jmp 0x44da8f
mov dl, byte [ebp - 0x1a]
sub dl, 1
mov byte [ebp - 0x1a], dl
movzx eax, byte [ebp - 0x1a]
cmp eax, 3
jle 0x44dab6
movzx ecx, byte [ebp - 0x1a]
movzx edx, byte [ebp - 0x1a]
movzx eax, byte [ebp + edx - 0x18]
movzx ecx, byte [ebp + ecx - 0x14]
xor ecx, eax
movzx edx, byte [ebp - 0x1a]
mov byte [ebp + edx - 0x14], cl
jmp 0x44da86
movzx eax, byte [ebp - 2]
mov ecx, 0xa
sub ecx, eax
movzx edx, byte [ecx + 0x459168]
movzx eax, byte [ebp - 7]
movzx ecx, byte [eax + str.cw]
xor edx, ecx
movzx eax, byte [ebp - 0x14]
xor eax, edx
mov byte [ebp - 0x14], al
movzx ecx, byte [ebp - 6]
movzx edx, byte [ecx + str.cw]
movzx eax, byte [ebp - 0x13]
xor eax, edx
mov byte [ebp - 0x13], al
movzx ecx, byte [ebp - 5]
movzx edx, byte [ecx + str.cw]
movzx eax, byte [ebp - 0x12]
xor eax, edx
mov byte [ebp - 0x12], al
movzx ecx, byte [ebp - 8]
movzx edx, byte [ecx + str.cw]
movzx eax, byte [ebp - 0x11]
xor eax, edx
mov byte [ebp - 0x11], al
mov byte [ebp - 0x1a], 0
jmp 0x44db29
mov cl, byte [ebp - 0x1a]
add cl, 1
mov byte [ebp - 0x1a], cl
movzx edx, byte [ebp - 0x1a]
cmp edx, 0x10
jge 0x44db54
movzx eax, byte [ebp - 0x1a]
movzx ecx, byte [ebp - 0x1a]
movzx edx, byte [ebp + ecx - 0x14]
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx + eax]
xor eax, edx
movzx ecx, byte [ebp - 0x1a]
mov edx, dword [ebp + 8]
mov byte [edx + ecx], al
jmp 0x44db20
movzx eax, byte [ebp - 2]
cmp eax, 0xa
je 0x44dd0b
mov byte [ebp - 0x1a], 0
jmp 0x44db71
movzx ecx, byte [ebp - 0x1a]
add ecx, 4
mov byte [ebp - 0x1a], cl
movzx edx, byte [ebp - 0x1a]
cmp edx, 0x10
jge 0x44dd0b
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax]
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx + eax + 2]
xor edx, eax
mov byte [ebp - 0x19], dl
movzx ecx, byte [ebp - 0x19]
push ecx
call fcn.0044d7e0
add esp, 4
mov byte [ebp - 0x15], al
movzx edx, byte [ebp - 0x1a]
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx + 1]
movzx edx, byte [ebp - 0x1a]
mov eax, dword [ebp + 8]
movzx edx, byte [eax + edx + 3]
xor ecx, edx
mov byte [ebp - 0x17], cl
movzx eax, byte [ebp - 0x17]
push eax
call fcn.0044d7e0
add esp, 4
mov byte [ebp - 0x16], al
movzx esi, byte [ebp - 0x17]
movzx ecx, byte [ebp - 0x1a]
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx + 1]
movzx ecx, byte [ebp - 0x1a]
mov edx, dword [ebp + 8]
movzx ecx, byte [edx + ecx + 2]
xor eax, ecx
push eax
call fcn.0044d7e0
add esp, 4
movzx edx, al
xor esi, edx
movzx eax, byte [ebp - 0x19]
xor eax, esi
mov byte [ebp - 0x19], al
mov cl, byte [ebp - 0x19]
mov byte [ebp - 0x17], cl
movzx edx, byte [ebp - 0x15]
push edx
call fcn.0044d7e0
add esp, 4
mov byte [ebp - 0x18], al
movzx eax, byte [ebp - 0x16]
push eax
call fcn.0044d7e0
add esp, 4
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 0x18]
movzx edx, byte [ebp - 1]
xor ecx, edx
push ecx
call fcn.0044d7e0
add esp, 4
movzx eax, al
movzx ecx, byte [ebp - 0x18]
xor eax, ecx
movzx edx, byte [ebp - 0x19]
xor edx, eax
mov byte [ebp - 0x19], dl
movzx eax, byte [ebp - 0x18]
movzx ecx, byte [ebp - 1]
xor eax, ecx
push eax
call fcn.0044d7e0
add esp, 4
movzx edx, al
movzx eax, byte [ebp - 1]
xor edx, eax
movzx ecx, byte [ebp - 0x17]
xor ecx, edx
mov byte [ebp - 0x17], cl
movzx edx, byte [ebp - 0x1a]
movzx eax, byte [ebp - 0x19]
movzx ecx, byte [ebp - 0x15]
xor eax, ecx
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx]
xor edx, eax
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
mov byte [ecx + eax], dl
movzx edx, byte [ebp - 0x1a]
movzx eax, byte [ebp - 0x17]
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx + 1]
xor edx, eax
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 1], dl
movzx edx, byte [ebp - 0x1a]
movzx eax, byte [ebp - 0x19]
movzx ecx, byte [ebp - 0x16]
xor eax, ecx
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx + 2]
xor edx, eax
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 2], dl
movzx edx, byte [ebp - 0x1a]
movzx eax, byte [ebp - 0x17]
movzx ecx, byte [ebp - 0x15]
xor eax, ecx
movzx ecx, byte [ebp - 0x16]
xor eax, ecx
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx + 3]
xor edx, eax
movzx eax, byte [ebp - 0x1a]
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 3], dl
jmp 0x44db67
jmp 0x44d924
pop esi
mov esp, ebp
pop ebp
ret