Function at 0x4016b0
Capabilities:
Encrypt data using aes
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x14
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
test ecx, ecx
je 0x402214
test eax, eax
je 0x402214
mov edx, esi
and edx, 0xffffffbf
cmp edx, 0x80
jne 0x401860
cmp esi, 0x80
je 0x401880
cmp esi, 0xc0
jne 0x40186c
mov dword [eax + 0xf0], 0xc
movzx edx, byte [ecx]
movzx ebx, byte [ecx + 1]
shl edx, 0x18
shl ebx, 0x10
xor edx, ebx
movzx ebx, byte [ecx + 3]
xor edx, ebx
movzx ebx, byte [ecx + 2]
shl ebx, 8
xor edx, ebx
mov dword [eax], edx
movzx ebx, byte [ecx + 4]
movzx edi, byte [ecx + 5]
shl ebx, 0x18
shl edi, 0x10
xor ebx, edi
movzx edi, byte [ecx + 7]
xor ebx, edi
movzx edi, byte [ecx + 6]
shl edi, 8
xor ebx, edi
mov dword [eax + 4], ebx
movzx edi, byte [ecx + 9]
mov dword [esp], ebx
movzx ebx, byte [ecx + 8]
shl edi, 0x10
shl ebx, 0x18
xor ebx, edi
movzx edi, byte [ecx + 0xb]
xor ebx, edi
movzx edi, byte [ecx + 0xa]
shl edi, 8
xor ebx, edi
mov dword [eax + 8], ebx
mov dword [esp + 4], ebx
movzx ebx, byte [ecx + 0xc]
mov edi, ebx
movzx ebx, byte [ecx + 0xd]
shl edi, 0x18
shl ebx, 0x10
xor ebx, edi
movzx edi, byte [ecx + 0xf]
xor ebx, edi
movzx edi, byte [ecx + 0xe]
shl edi, 8
xor ebx, edi
mov dword [eax + 0xc], ebx
mov ebp, ebx
cmp esi, 0x80
je 0x401890
movzx ebx, byte [ecx + 0x10]
mov edi, ebx
movzx ebx, byte [ecx + 0x11]
shl edi, 0x18
shl ebx, 0x10
xor ebx, edi
movzx edi, byte [ecx + 0x13]
xor ebx, edi
movzx edi, byte [ecx + 0x12]
shl edi, 8
xor ebx, edi
mov dword [eax + 0x10], ebx
mov dword [esp + 8], ebx
movzx ebx, byte [ecx + 0x14]
mov edi, ebx
movzx ebx, byte [ecx + 0x15]
shl edi, 0x18
shl ebx, 0x10
xor ebx, edi
movzx edi, byte [ecx + 0x17]
xor ebx, edi
movzx edi, byte [ecx + 0x16]
shl edi, 8
xor ebx, edi
mov dword [eax + 0x14], ebx
cmp esi, 0xc0
je 0x401de0
movzx ebx, byte [ecx + 0x18]
mov edi, ebx
movzx ebx, byte [ecx + 0x19]
shl edi, 0x18
shl ebx, 0x10
xor ebx, edi
movzx edi, byte [ecx + 0x1b]
xor ebx, edi
movzx edi, byte [ecx + 0x1a]
shl edi, 8
xor ebx, edi
mov dword [eax + 0x18], ebx
movzx edi, byte [ecx + 0x1c]
shl edi, 0x18
mov ebx, edi
movzx edi, byte [ecx + 0x1d]
shl edi, 0x10
xor edi, ebx
movzx ebx, byte [ecx + 0x1f]
xor ebx, edi
movzx edi, byte [ecx + 0x1e]
shl edi, 8
xor ebx, edi
mov dword [eax + 0x1c], ebx
cmp esi, 0x100
je 0x401ce0
xor eax, eax
add esp, 0x14
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 0x100
jne 0x40221e
mov dword [eax + 0xf0], 0xe
jmp 0x401706
mov dword [eax + 0xf0], 0xa
jmp 0x401706
movzx ecx, bl
xor edx, 0x1000000
mov edi, dword [esp + 4]
mov esi, dword [ecx*4 + 0x741300]
mov ecx, dword [esp]
and esi, 0xff00
xor esi, edx
mov edx, ebx
shr edx, 0x18
movzx edx, byte [edx*4 + 0x740f00]
xor esi, edx
mov edx, ebx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + 0x740b00]
and edx, 0xff000000
xor esi, edx
movzx edx, bh
mov edx, dword [edx*4 + 0x740700]
and edx, 0xff0000
xor esi, edx
mov edx, edi
xor ecx, esi
mov dword [eax + 0x10], esi
xor esi, 0x2000000
xor edx, ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], edx
xor edx, ebx
movzx ebx, dl
mov dword [eax + 0x1c], edx
mov ebx, dword [ebx*4 + 0x741300]
and ebx, 0xff00
xor esi, ebx
mov ebx, edx
shr ebx, 0x18
movzx ebx, byte [ebx*4 + 0x740f00]
xor esi, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [ebx*4 + 0x740b00]
and ebx, 0xff000000
xor ebx, esi
movzx esi, dh
mov esi, dword [esi*4 + 0x740700]
and esi, 0xff0000
xor ebx, esi
mov esi, edi
xor esi, ebx
xor ecx, ebx
mov dword [eax + 0x20], ebx
xor ebx, 0x4000000
mov ebp, esi
mov dword [esp], ecx
xor ebp, edx
mov dword [eax + 0x24], ecx
mov ecx, ebp
mov dword [eax + 0x2c], ebp
movzx edi, cl
mov dword [eax + 0x28], esi
mov edi, dword [edi*4 + 0x741300]
and edi, 0xff00
xor ebx, edi
mov edi, ebp
shr edi, 0x18
movzx edi, byte [edi*4 + 0x740f00]
xor ebx, edi
mov edi, ebp
shr edi, 0x10
mov ecx, edi
movzx edi, cl
mov ecx, ebp
mov edi, dword [edi*4 + 0x740b00]
movzx ebp, ch
mov ecx, dword [esp]
and edi, 0xff000000
xor edi, ebx
mov ebx, dword [ebp*4 + 0x740700]
and ebx, 0xff0000
xor edi, ebx
xor ecx, edi
mov dword [eax + 0x30], edi
xor edi, 0x8000000
mov ebx, ecx
xor edx, ecx
mov dword [eax + 0x34], ecx
xor ebx, esi
mov dword [eax + 0x3c], edx
mov dword [eax + 0x38], ebx
movzx ebx, dl
mov ebx, dword [ebx*4 + 0x741300]
and ebx, 0xff00
xor edi, ebx
mov ebx, edx
shr ebx, 0x18
movzx ebx, byte [ebx*4 + 0x740f00]
xor edi, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [ebx*4 + 0x740b00]
and ebx, 0xff000000
xor ebx, edi
movzx edi, dh
mov edi, dword [edi*4 + 0x740700]
and edi, 0xff0000
xor ebx, edi
xor esi, ebx
xor ecx, ebx
mov dword [eax + 0x40], ebx
xor ebx, 0x10000000
mov ebp, esi
mov dword [esp], ecx
xor ebp, edx
mov dword [eax + 0x44], ecx
mov ecx, ebp
mov dword [eax + 0x4c], ebp
movzx edi, cl
mov dword [eax + 0x48], esi
mov edi, dword [edi*4 + 0x741300]
and edi, 0xff00
xor ebx, edi
mov edi, ebp
shr edi, 0x18
movzx edi, byte [edi*4 + 0x740f00]
xor ebx, edi
mov edi, ebp
shr edi, 0x10
mov ecx, edi
movzx edi, cl
mov ecx, ebp
mov edi, dword [edi*4 + 0x740b00]
movzx ebp, ch
mov ecx, dword [esp]
and edi, 0xff000000
xor edi, ebx
mov ebx, dword [ebp*4 + 0x740700]
and ebx, 0xff0000
xor edi, ebx
xor ecx, edi
mov dword [eax + 0x50], edi
mov ebx, ecx
mov dword [eax + 0x54], ecx
xor ebx, esi
xor edx, ecx
xor edi, 0x20000000
mov dword [eax + 0x58], ebx
movzx ebx, dl
mov ebp, edx
mov ebx, dword [ebx*4 + 0x741300]
mov dword [eax + 0x5c], edx
and ebx, 0xff00
xor edi, ebx
mov ebx, edx
shr ebx, 0x18
movzx ebx, byte [ebx*4 + 0x740f00]
xor edi, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [ebx*4 + 0x740b00]
and ebx, 0xff000000
xor ebx, edi
movzx edi, dh
mov edi, dword [edi*4 + 0x740700]
and edi, 0xff0000
xor ebx, edi
xor esi, ebx
xor ecx, ebx
mov dword [eax + 0x60], ebx
xor ebx, 0x40000000
xor ebp, esi
mov dword [esp], ecx
mov dword [eax + 0x64], ecx
mov ecx, ebp
movzx edi, cl
mov dword [eax + 0x6c], ebp
mov edi, dword [edi*4 + 0x741300]
mov dword [eax + 0x68], esi
and edi, 0xff00
xor ebx, edi
mov edi, ebp
shr edi, 0x18
movzx edi, byte [edi*4 + 0x740f00]
xor ebx, edi
mov edi, ebp
shr edi, 0x10
mov ecx, edi
movzx edi, cl
mov ecx, ebp
mov edi, dword [edi*4 + 0x740b00]
movzx ebp, ch
mov ecx, dword [esp]
and edi, 0xff000000
xor edi, ebx
mov ebx, dword [ebp*4 + 0x740700]
and ebx, 0xff0000
xor edi, ebx
mov ebx, esi
xor ecx, edi
mov dword [eax + 0x70], edi
add edi, 0x80000000
xor edx, ecx
xor ebx, ecx
mov dword [eax + 0x74], ecx
mov dword [eax + 0x78], ebx
movzx ebx, dl
mov ebx, dword [ebx*4 + 0x741300]
mov dword [eax + 0x7c], edx
and ebx, 0xff00
xor edi, ebx
mov ebx, edx
shr ebx, 0x18
movzx ebx, byte [ebx*4 + 0x740f00]
xor edi, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [ebx*4 + 0x740b00]
and ebx, 0xff000000
xor ebx, edi
movzx edi, dh
mov edi, dword [edi*4 + 0x740700]
and edi, 0xff0000
xor ebx, edi
mov edi, edx
xor esi, ebx
xor ecx, ebx
mov dword [eax + 0x80], ebx
xor ebx, 0x1b000000
xor edi, esi
mov dword [esp], ecx
mov dword [eax + 0x84], ecx
mov ecx, edi
movzx ebp, cl
mov dword [eax + 0x8c], edi
mov ebp, dword [ebp*4 + 0x741300]
mov dword [eax + 0x88], esi
and ebp, 0xff00
xor ebx, ebp
mov ebp, edi
shr ebp, 0x18
movzx ebp, byte [ebp*4 + 0x740f00]
xor ebx, ebp
mov ebp, edi
shr ebp, 0x10
mov ecx, ebp
movzx ebp, cl
mov ecx, edi
movzx edi, ch
mov ebp, dword [ebp*4 + 0x740b00]
mov ecx, dword [esp]
mov edi, dword [edi*4 + 0x740700]
and ebp, 0xff000000
and edi, 0xff0000
xor ebx, ebp
xor ebx, edi
mov edi, esi
xor ecx, ebx
mov dword [eax + 0x90], ebx
xor ebx, 0x36000000
xor edx, ecx
xor edi, ecx
mov dword [eax + 0x94], ecx
mov dword [eax + 0x98], edi
movzx edi, dl
mov edi, dword [edi*4 + 0x741300]
mov dword [eax + 0x9c], edx
and edi, 0xff00
xor ebx, edi
mov edi, edx
shr edi, 0x18
movzx edi, byte [edi*4 + 0x740f00]
xor edi, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [ebx*4 + 0x740b00]
and ebx, 0xff000000
xor ebx, edi
movzx edi, dh
mov edi, dword [edi*4 + 0x740700]
and edi, 0xff0000
xor ebx, edi
xor ecx, ebx
xor esi, ebx
mov dword [eax + 0xa0], ebx
mov dword [eax + 0xa8], esi
xor esi, edx
mov dword [eax + 0xa4], ecx
mov dword [eax + 0xac], esi
jmp 0x40184f
xor edi, edi
mov ebx, ebp
add eax, 0x20
mov ebp, edi
jmp 0x401d55
mov ecx, ebx
movzx edi, bh
shr ecx, 0x10
mov edi, dword [edi*4 + 0x741300]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x740700]
and edi, 0xff00
and ecx, 0xff0000
or ecx, edi
mov edi, ebx
xor ecx, dword [eax - 0x30]
shr edi, 0x18
mov dword [esp + 8], ecx
movzx ecx, bl
mov edi, dword [edi*4 + 0x740b00]
movzx ecx, byte [ecx*4 + 0x740f00]
and edi, 0xff000000
or edi, ecx
xor edi, dword [esp + 8]
mov dword [eax - 0x10], edi
xor edi, dword [eax - 0x2c]
mov dword [eax - 0xc], edi
xor edi, dword [eax - 0x28]
mov dword [eax - 8], edi
xor edi, esi
mov dword [eax - 4], edi
mov esi, dword [eax - 4]
xor edx, dword [ebp*4 + 0x73f5c0]
add ebp, 1
add eax, 0x20
mov ecx, esi
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x741300]
and ecx, 0xff00
xor edx, ecx
mov ecx, esi
shr ecx, 0x18
movzx ecx, byte [ecx*4 + 0x740f00]
xor edx, ecx
mov ecx, esi
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x740b00]
and ecx, 0xff000000
xor ecx, edx
mov edx, esi
movzx edx, dh
mov edx, dword [edx*4 + 0x740700]
and edx, 0xff0000
xor edx, ecx
xor dword [esp], edx
mov ecx, dword [esp]
xor dword [esp + 4], ecx
mov edi, dword [esp + 4]
mov dword [eax - 0x20], edx
xor ebx, edi
mov dword [eax - 0x1c], ecx
mov dword [eax - 0x18], edi
mov dword [eax - 0x14], ebx
cmp ebp, 7
jne 0x401cf0
jmp 0x40184f
movzx ecx, bl
xor edx, 0x1000000
mov ecx, dword [ecx*4 + 0x741300]
and ecx, 0xff00
xor edx, ecx
mov ecx, ebx
shr ecx, 0x18
movzx ecx, byte [ecx*4 + 0x740f00]
xor edx, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x740b00]
and ecx, 0xff000000
xor edx, ecx
movzx ecx, bh
mov ecx, dword [ecx*4 + 0x740700]
and ecx, 0xff0000
xor ecx, edx
mov edx, dword [esp]
mov dword [eax + 0x18], ecx
xor edx, ecx
mov dword [eax + 0x1c], edx
xor edx, dword [esp + 4]
mov edi, edx
mov dword [esp + 4], edx
xor edi, ebp
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], edi
xor edi, dword [esp + 8]
xor ebx, edi
mov dword [eax + 0x28], edi
movzx edx, bl
mov esi, ebx
mov dword [eax + 0x2c], ebx
mov edx, dword [edx*4 + 0x741300]
shr esi, 0x18
movzx esi, byte [esi*4 + 0x740f00]
and edx, 0xff00
or edx, esi
mov esi, ebx
xor edx, 0x2000000
shr esi, 0x10
mov dword [esp + 8], edx
mov edx, esi
movzx esi, dl
mov edx, dword [esp + 8]
mov dword [esp + 8], edi
mov esi, dword [esi*4 + 0x740b00]
and esi, 0xff000000
xor edx, esi
movzx esi, bh
mov esi, dword [esi*4 + 0x740700]
and esi, 0xff0000
xor esi, edx
xor ecx, esi
xor esi, dword [esp]
mov edx, ecx
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 0x34], esi
xor ecx, esi
mov dword [esp], esi
xor esi, ebp
xor edi, esi
mov dword [eax + 0x38], ecx
xor ebx, edi
mov dword [eax + 0x40], edi
movzx ecx, bl
mov edi, ebx
mov dword [eax + 0x44], ebx
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x741300]
movzx ebx, byte [ebx*4 + 0x740f00]
mov dword [eax + 0x3c], esi
and ecx, 0xff00
or ecx, ebx
mov ebx, edi
shr ebx, 0x10
xor ecx, 0x4000000
movzx ebx, bl
mov ebx, dword [ebx*4 + 0x740b00]
mov dword [esp + 0xc], edi
and ebx, 0xff000000
xor ecx, ebx
mov ebx, edi
movzx ebx, bh
mov ebx, dword [ebx*4 + 0x740700]
and ebx, 0xff0000
xor ecx, ebx
mov ebx, edi
xor ecx, edx
mov edx, dword [esp]
mov dword [eax + 0x48], ecx
xor edx, ecx
mov dword [eax + 0x4c], edx
mov edx, dword [esp + 4]
xor edx, ecx
xor esi, edx
mov dword [esp + 4], edx
mov dword [eax + 0x54], esi
mov esi, dword [esp + 8]
mov dword [eax + 0x50], edx
xor esi, edx
xor ebx, esi
mov dword [eax + 0x58], esi
mov edx, ebx
mov dword [eax + 0x5c], ebx
movzx ebx, bl
mov edi, edx
mov ebx, dword [ebx*4 + 0x741300]
shr edi, 0x18
movzx edi, byte [edi*4 + 0x740f00]
and ebx, 0xff00
or ebx, edi
mov edi, edx
movzx edx, dh
xor ebx, 0x8000000
shr edi, 0x10
mov dword [esp + 0x10], ebx
mov ebx, edi
movzx edi, bl
mov ebx, dword [esp + 0x10]
mov edi, dword [edi*4 + 0x740b00]
and edi, 0xff000000
xor ebx, edi
mov edi, dword [edx*4 + 0x740700]
and edi, 0xff0000
xor ebx, edi
mov edi, dword [esp]
xor ecx, ebx
xor ebp, ebx
xor edi, ebx
mov edx, ecx
mov dword [eax + 0x60], ecx
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
xor esi, ebp
mov dword [eax + 0x6c], ebp
xor ebx, ebp
mov dword [eax + 0x70], esi
xor ecx, edi
mov esi, ebx
mov dword [esp], ebp
mov dword [eax + 0x68], ecx
movzx ecx, bl
shr esi, 0x18
mov ecx, dword [ecx*4 + 0x741300]
movzx esi, byte [esi*4 + 0x740f00]
mov dword [eax + 0x64], edi
mov dword [eax + 0x74], ebx
and ecx, 0xff00
or ecx, esi
mov esi, ebx
xor ecx, 0x10000000
shr esi, 0x10
mov ebp, ecx
mov ecx, esi
movzx esi, cl
mov ecx, ebp
mov esi, dword [esi*4 + 0x740b00]
and esi, 0xff000000
xor ecx, esi
movzx esi, bh
mov esi, dword [esi*4 + 0x740700]
mov ebp, dword [esp + 4]
and esi, 0xff0000
xor ecx, esi
mov esi, dword [esp + 8]
xor ecx, edx
mov edx, edi
xor edx, ecx
xor ebp, ecx
xor esi, ecx
mov dword [eax + 0x78], ecx
mov dword [eax + 0x7c], edx
mov edx, dword [esp]
xor ebx, esi
mov dword [esp + 4], esi
xor edx, ebp
mov dword [eax + 0x88], esi
mov esi, ebx
mov dword [eax + 0x84], edx
movzx edx, bl
shr esi, 0x18
mov edx, dword [edx*4 + 0x741300]
movzx esi, byte [esi*4 + 0x740f00]
mov dword [eax + 0x8c], ebx
mov dword [eax + 0x80], ebp
and edx, 0xff00
or edx, esi
mov esi, ebx
movzx ebx, bh
xor edx, 0x20000000
shr esi, 0x10
mov dword [esp + 8], edx
mov edx, esi
movzx esi, dl
mov edx, dword [ebx*4 + 0x740700]
mov ebx, dword [esp + 0xc]
mov esi, dword [esi*4 + 0x740b00]
and edx, 0xff0000
and esi, 0xff000000
xor esi, dword [esp + 8]
mov dword [esp + 8], ebp
xor esi, edx
mov edx, ebp
xor ecx, esi
xor esi, edi
mov edi, dword [esp]
xor edx, esi
xor ebx, esi
mov dword [eax + 0x90], ecx
mov dword [eax + 0x98], edx
mov edx, dword [esp + 4]
xor edi, esi
mov ebp, ebx
shr ebp, 0x18
mov dword [eax + 0x94], esi
xor edx, edi
movzx ebp, byte [ebp*4 + 0x740f00]
mov dword [eax + 0x9c], edi
mov dword [eax + 0xa0], edx
movzx edx, bl
mov edx, dword [edx*4 + 0x741300]
mov dword [eax + 0xa4], ebx
and edx, 0xff00
or edx, ebp
mov ebp, ebx
xor edx, 0x40000000
shr ebp, 0x10
mov dword [esp + 0xc], edx
mov edx, ebp
movzx ebp, dl
mov edx, dword [esp + 0xc]
mov ebp, dword [ebp*4 + 0x740b00]
and ebp, 0xff000000
xor edx, ebp
movzx ebp, bh
mov ebp, dword [ebp*4 + 0x740700]
and ebp, 0xff0000
xor edx, ebp
mov ebp, dword [esp + 8]
xor ecx, edx
mov edx, esi
xor ebp, ecx
xor edx, ecx
mov dword [eax + 0xa8], ecx
xor edi, ebp
mov dword [eax + 0xac], edx
mov dword [eax + 0xb4], edi
mov edi, dword [esp + 4]
mov dword [eax + 0xb0], ebp
xor edi, ebp
xor ebx, edi
mov dword [eax + 0xb8], edi
movzx edx, bl
mov dword [eax + 0xbc], ebx
mov edi, dword [edx*4 + 0x741300]
mov edx, ebx
shr edx, 0x18
movzx edx, byte [edx*4 + 0x740f00]
and edi, 0xff00
or edi, edx
mov edx, ebx
movzx ebx, bh
shr edx, 0x10
add edi, 0x80000000
movzx edx, dl
mov edx, dword [edx*4 + 0x740b00]
and edx, 0xff000000
xor edi, edx
mov edx, dword [ebx*4 + 0x740700]
and edx, 0xff0000
xor edi, edx
xor esi, edi
xor ecx, edi
xor edi, dword [esp]
mov dword [eax + 0xc4], esi
xor esi, ebp
mov dword [eax + 0xc0], ecx
mov dword [eax + 0xc8], esi
mov dword [eax + 0xcc], edi
jmp 0x40184f
mov eax, 0xffffffff
jmp 0x401851
mov eax, 0xfffffffe
jmp 0x401851