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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x20
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov eax, dword [edx]
bswap eax
mov dword [edi], eax
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 4]
bswap eax
mov dword [edi + 4], eax
mov dword [esp + 0x14], eax
mov eax, dword [edx + 8]
bswap eax
mov dword [edi + 8], eax
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x18], eax
mov eax, ebx
bswap eax
mov dword [edi + 0xc], eax
cmp ecx, 0x80
je 0x1001d9a8
mov ebx, dword [edx + 0x10]
bswap ebx
mov dword [esp + 0x10], ebx
mov dword [edi + 0x10], ebx
mov ebx, dword [edx + 0x14]
mov esi, ebx
bswap esi
mov dword [edi + 0x14], esi
cmp ecx, 0xc0
je 0x1001de10
mov ebx, dword [edx + 0x18]
bswap ebx
mov dword [edi + 0x18], ebx
mov edx, dword [edx + 0x1c]
bswap edx
mov dword [edi + 0x1c], edx
xor edx, edx
cmp ecx, 0x100
je 0x1001e248
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, ebx
movzx ecx, bl
shr edx, 0x18
movzx ecx, byte [ecx*4 + str.ccccwwww]
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff00
mov esi, edx
mov edx, ebx
movzx ebx, bh
shr edx, 0x10
or esi, ecx
movzx edx, dl
mov ecx, dword [edx*4 + str.ccccwwww]
mov edx, dword [ebx*4 + str.ccccwwww]
and ecx, 0xff0000
and edx, 0xff000000
xor ecx, esi
mov esi, dword [esp + 0x1c]
xor ecx, esi
mov esi, dword [esp + 0x18]
xor ecx, edx
mov edx, dword [esp + 0x14]
xor ecx, 0x1000000
mov ebx, esi
xor edx, ecx
mov dword [edi + 0x10], ecx
xor ebx, edx
mov dword [edi + 0x14], edx
xor eax, ebx
mov dword [edi + 0x18], ebx
movzx ebx, ah
mov dword [edi + 0x1c], eax
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff0000
xor ebx, ecx
movzx ecx, al
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff00
xor ecx, ebx
mov ebx, eax
shr ebx, 0x18
movzx ebx, byte [ebx*4 + str.ccccwwww]
xor ecx, ebx
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff000000
xor ecx, ebx
mov ebx, eax
xor ecx, 0x2000000
xor esi, ecx
xor edx, ecx
mov dword [edi + 0x20], ecx
xor ebx, esi
mov dword [esp + 0x1c], edx
mov dword [edi + 0x24], edx
movzx edx, bh
mov edx, dword [edx*4 + str.ccccwwww]
mov dword [edi + 0x2c], ebx
mov dword [edi + 0x28], esi
and edx, 0xff0000
xor ecx, edx
movzx edx, bl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff00
xor edx, ecx
mov ecx, ebx
shr ecx, 0x18
movzx ecx, byte [ecx*4 + str.ccccwwww]
xor ecx, edx
shr ebx, 0x10
mov edx, dword [esp + 0x1c]
movzx ebx, bl
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff000000
xor ecx, ebx
xor ecx, 0x4000000
xor edx, ecx
mov dword [edi + 0x30], ecx
mov ebx, edx
xor eax, edx
mov dword [edi + 0x34], edx
xor ebx, esi
mov dword [edi + 0x3c], eax
mov dword [edi + 0x38], ebx
movzx ebx, ah
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff0000
xor ecx, ebx
movzx ebx, al
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
xor ebx, ecx
mov ecx, eax
shr ecx, 0x18
movzx ecx, byte [ecx*4 + str.ccccwwww]
xor ebx, ecx
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff000000
xor ebx, ecx
mov ecx, esi
xor ebx, 0x8000000
xor ecx, ebx
xor edx, ebx
mov dword [edi + 0x40], ebx
mov esi, ecx
mov dword [esp + 0x1c], edx
xor esi, eax
mov dword [edi + 0x44], edx
mov edx, esi
mov dword [edi + 0x4c], esi
movzx edx, dh
mov dword [edi + 0x48], ecx
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff0000
xor ebx, edx
mov edx, esi
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff00
xor edx, ebx
mov ebx, esi
shr esi, 0x10
shr ebx, 0x18
movzx ebx, byte [ebx*4 + str.ccccwwww]
xor ebx, edx
mov edx, esi
movzx esi, dl
mov edx, dword [esp + 0x1c]
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff000000
xor ebx, esi
xor ebx, sym.libcurl.dll_Ordinal_0
xor edx, ebx
mov dword [edi + 0x50], ebx
mov esi, edx
mov dword [edi + 0x54], edx
xor esi, ecx
xor eax, edx
mov dword [edi + 0x58], esi
movzx esi, ah
mov esi, dword [esi*4 + str.ccccwwww]
mov dword [esp + 0x1c], eax
mov dword [edi + 0x5c], eax
and esi, 0xff0000
xor esi, ebx
movzx ebx, al
shr eax, 0x18
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
xor ebx, esi
movzx esi, byte [eax*4 + str.ccccwwww]
mov eax, dword [esp + 0x1c]
shr eax, 0x10
xor ebx, esi
movzx esi, al
mov eax, dword [esp + 0x1c]
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff000000
xor ebx, esi
xor ebx, 0x20000000
xor ecx, ebx
xor edx, ebx
mov dword [edi + 0x60], ebx
mov esi, ecx
mov dword [edi + 0x64], edx
xor esi, eax
mov dword [edi + 0x68], ecx
mov eax, esi
mov dword [edi + 0x6c], esi
movzx eax, ah
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff0000
xor ebx, eax
mov eax, esi
movzx eax, al
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor eax, ebx
mov ebx, esi
shr esi, 0x10
shr ebx, 0x18
movzx ebx, byte [ebx*4 + str.ccccwwww]
xor ebx, eax
mov eax, esi
movzx esi, al
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff000000
xor ebx, esi
mov esi, ecx
xor ebx, 0x40000000
xor edx, ebx
mov dword [edi + 0x70], ebx
xor esi, edx
mov dword [edi + 0x74], edx
mov dword [edi + 0x78], esi
mov eax, dword [esp + 0x1c]
xor eax, edx
movzx esi, ah
mov dword [esp + 0x1c], eax
mov esi, dword [esi*4 + str.ccccwwww]
mov dword [edi + 0x7c], eax
and esi, 0xff0000
xor esi, ebx
movzx ebx, al
shr eax, 0x18
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
xor ebx, esi
movzx esi, byte [eax*4 + str.ccccwwww]
mov eax, dword [esp + 0x1c]
xor ebx, esi
shr eax, 0x10
movzx esi, al
mov eax, dword [esp + 0x1c]
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff000000
xor ebx, esi
mov esi, edx
add ebx, 0x80000000
xor ecx, ebx
xor esi, ebx
mov dword [edi + 0x80], ebx
xor eax, ecx
mov dword [edi + 0x84], esi
mov edx, eax
mov dword [edi + 0x8c], eax
movzx eax, ah
mov eax, dword [eax*4 + str.ccccwwww]
mov dword [edi + 0x88], ecx
and eax, 0xff0000
xor ebx, eax
movzx eax, dl
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor eax, ebx
mov ebx, edx
shr edx, 0x10
shr ebx, 0x18
movzx edx, dl
movzx ebx, byte [ebx*4 + str.ccccwwww]
mov edx, dword [edx*4 + str.ccccwwww]
xor ebx, eax
and edx, 0xff000000
mov eax, dword [esp + 0x1c]
xor ebx, edx
xor ebx, 0x1b000000
xor esi, ebx
mov dword [edi + 0x90], ebx
mov edx, esi
mov dword [edi + 0x94], esi
mov esi, ecx
xor eax, edx
xor esi, edx
mov dword [edi + 0x98], esi
movzx esi, ah
mov esi, dword [esi*4 + str.ccccwwww]
mov dword [edi + 0x9c], eax
and esi, 0xff0000
xor esi, ebx
movzx ebx, al
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff00
xor ebx, esi
mov esi, eax
shr esi, 0x18
movzx esi, byte [esi*4 + str.ccccwwww]
xor ebx, esi
mov esi, eax
shr esi, 0x10
mov dword [esp + 0x1c], ebx
mov ebx, esi
movzx esi, bl
mov ebx, dword [esp + 0x1c]
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff000000
xor ebx, esi
xor ebx, 0x36000000
mov dword [edi + 0xa0], ebx
xor edx, ebx
xor ebx, ecx
mov dword [edi + 0xa8], ebx
xor ebx, eax
mov dword [edi + 0xa4], edx
mov edx, 0xa
mov dword [edi + 0xac], ebx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, ebx
shr edx, 0x18
mov ecx, dword [edx*4 + str.ccccwwww]
movzx edx, bl
movzx edx, byte [edx*4 + str.ccccwwww]
and ecx, 0xff00
or ecx, edx
mov edx, ebx
movzx ebx, bh
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff0000
xor edx, ecx
mov ecx, dword [esp + 0x1c]
xor ecx, edx
mov edx, dword [ebx*4 + str.ccccwwww]
mov ebx, dword [esp + 0x14]
and edx, 0xff000000
xor ecx, edx
mov edx, dword [esp + 0x18]
xor ecx, 0x1000000
xor ebx, ecx
mov dword [edi + 0x18], ecx
xor edx, ebx
mov dword [edi + 0x1c], ebx
xor eax, edx
mov dword [edi + 0x20], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
xor edx, eax
mov dword [edi + 0x24], eax
xor esi, edx
mov dword [edi + 0x28], edx
mov eax, esi
mov dword [esp + 0x1c], esi
movzx eax, ah
mov dword [edi + 0x2c], esi
mov edx, dword [eax*4 + str.ccccwwww]
mov eax, esi
movzx eax, al
mov eax, dword [eax*4 + str.ccccwwww]
and edx, 0xff0000
xor edx, ecx
mov ecx, dword [esp + 0x18]
and eax, 0xff00
xor eax, edx
mov edx, esi
shr edx, 0x18
movzx edx, byte [edx*4 + str.ccccwwww]
xor eax, edx
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x14]
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff000000
xor eax, edx
mov edx, dword [esp + 0x1c]
xor eax, 0x2000000
xor ecx, eax
xor esi, eax
mov dword [edi + 0x30], eax
xor ebx, ecx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
xor ebx, ecx
mov dword [edi + 0x34], esi
xor edx, ebx
mov dword [edi + 0x40], ebx
mov ecx, edx
mov dword [edi + 0x44], edx
movzx edx, dh
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff0000
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor eax, edx
mov edx, ecx
shr ecx, 0x10
shr edx, 0x18
movzx ecx, cl
movzx edx, byte [edx*4 + str.ccccwwww]
xor edx, eax
mov eax, dword [ecx*4 + str.ccccwwww]
and eax, 0xff000000
xor edx, eax
mov eax, esi
mov esi, dword [esp + 0x14]
xor edx, 0x4000000
xor eax, edx
mov dword [edi + 0x48], edx
mov ecx, eax
mov dword [edi + 0x4c], eax
mov eax, dword [esp + 0x18]
xor esi, ecx
xor eax, ecx
xor ebx, esi
mov dword [edi + 0x54], esi
mov dword [edi + 0x50], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x58], ebx
xor eax, esi
movzx ebx, ah
mov dword [edi + 0x5c], eax
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff0000
xor ebx, edx
movzx edx, al
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff00
xor edx, ebx
mov ebx, eax
shr ebx, 0x18
movzx ebx, byte [ebx*4 + str.ccccwwww]
xor edx, ebx
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff000000
xor edx, ebx
mov ebx, dword [esp + 0x10]
xor edx, 0x8000000
xor ebx, edx
xor ecx, edx
mov dword [edi + 0x60], edx
xor eax, ebx
mov dword [edi + 0x70], ebx
mov dword [esp + 0x14], ebx
movzx ebx, ah
mov ebx, dword [ebx*4 + str.ccccwwww]
mov dword [esp + 0xc], ecx
mov dword [edi + 0x64], ecx
mov ecx, dword [esp + 0x18]
and ebx, 0xff0000
mov dword [edi + 0x74], eax
xor ecx, edx
xor edx, ebx
movzx ebx, al
mov ebx, dword [ebx*4 + str.ccccwwww]
mov dword [edi + 0x68], ecx
mov dword [esp + 0x18], ecx
xor ecx, esi
and ebx, 0xff00
mov dword [edi + 0x6c], ecx
mov ecx, esi
xor ebx, edx
mov edx, eax
shr edx, 0x18
shr eax, 0x10
movzx eax, al
movzx edx, byte [edx*4 + str.ccccwwww]
mov eax, dword [eax*4 + str.ccccwwww]
xor edx, ebx
and eax, 0xff000000
xor edx, eax
mov eax, edx
xor eax, sym.libcurl.dll_Ordinal_0
mov dword [edi + 0x78], eax
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
xor edx, eax
xor ecx, edx
xor ebx, edx
mov dword [edi + 0x7c], edx
mov dword [edi + 0x80], ebx
mov ebx, ecx
xor ebx, esi
mov esi, dword [esp + 0x1c]
mov dword [edi + 0x84], ecx
mov dword [edi + 0x88], ebx
xor esi, edx
mov ebx, esi
mov dword [edi + 0x8c], esi
movzx ebx, bh
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff0000
xor ebx, eax
mov eax, esi
movzx eax, al
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor eax, ebx
mov ebx, esi
shr ebx, 0x18
movzx ebx, byte [ebx*4 + str.ccccwwww]
xor eax, ebx
mov ebx, esi
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [ebx*4 + str.ccccwwww]
and ebx, 0xff000000
xor eax, ebx
xor eax, 0x20000000
xor edx, eax
mov dword [edi + 0x90], eax
mov dword [edi + 0x94], edx
mov ebx, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
xor edx, eax
xor ecx, edx
mov dword [esp + 0x1c], edx
mov dword [edi + 0x98], edx
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x9c], ecx
mov ecx, dword [esp + 0x14]
xor edx, ecx
mov ecx, edx
mov dword [edi + 0xa0], edx
xor ecx, esi
mov dword [esp + 0x14], edx
mov dword [edi + 0xa4], ecx
mov edx, ecx
movzx ecx, ch
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff0000
xor eax, ecx
movzx ecx, dl
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff00
xor ecx, eax
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax*4 + str.ccccwwww]
xor eax, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff000000
xor eax, edx
mov edx, dword [esp + 0x1c]
xor eax, 0x40000000
xor ebx, eax
mov dword [edi + 0xa8], eax
xor edx, ebx
mov dword [edi + 0xac], ebx
mov ecx, ebx
mov dword [edi + 0xb0], edx
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
xor ebx, ecx
xor esi, ebx
xor edx, ebx
mov dword [edi + 0xb4], ebx
mov dword [edi + 0xb8], edx
mov edx, esi
mov dword [edi + 0xbc], esi
movzx esi, dh
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff0000
xor eax, esi
movzx esi, dl
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff00
xor esi, eax
mov eax, edx
shr edx, 0x10
shr eax, 0x18
movzx edx, dl
movzx eax, byte [eax*4 + str.ccccwwww]
mov edx, dword [edx*4 + str.ccccwwww]
xor eax, esi
and edx, 0xff000000
xor eax, edx
mov edx, dword [esp + 0x1c]
add eax, 0x80000000
mov dword [edi + 0xc0], eax
xor ecx, eax
xor eax, edx
mov edx, 0xc
mov dword [edi + 0xc8], eax
xor eax, ebx
mov dword [edi + 0xcc], eax
mov eax, edx
mov dword [edi + 0xc4], ecx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0
lea ecx, [edi + 0x20]
jmp 0x1001e2cf
mov edx, eax
movzx edi, al
shr edx, 0x10
movzx edi, byte [edi*4 + str.ccccwwww]
movzx edx, dl
mov esi, dword [edx*4 + str.ccccwwww]
movzx edx, ah
mov edx, dword [edx*4 + str.ccccwwww]
and esi, 0xff0000
and edx, 0xff00
or esi, edx
mov edx, eax
xor esi, dword [ecx - 0x30]
shr edx, 0x18
mov edx, dword [edx*4 + str.ccccwwww]
and edx, 0xff000000
or edx, edi
mov edi, dword [ecx - 0x2c]
xor edx, esi
mov esi, dword [ecx - 0x28]
xor edi, edx
movd xmm0, edx
xor esi, edi
movd xmm5, edi
xor ebx, esi
movd xmm1, esi
punpckldq xmm0, xmm5
movd xmm4, ebx
punpckldq xmm1, xmm4
punpcklqdq xmm0, xmm1
movups xmmword [ecx - 0x10], xmm0
mov ebx, dword [ecx - 4]
mov edi, dword [esp + 0x10]
add ecx, 0x20
movzx edx, bl
mov esi, ebx
mov edx, dword [edx*4 + str.ccccwwww]
shr esi, 0x18
movzx esi, byte [esi*4 + str.ccccwwww]
and edx, 0xff00
or edx, esi
mov esi, ebx
xor edx, dword [edi*4 + 0x100385e0]
add edi, 1
shr esi, 0x10
mov dword [esp + 0x10], edx
mov edx, esi
movzx esi, dl
mov edx, dword [esp + 0x10]
mov dword [esp + 0x10], edi
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff000000
xor edx, esi
movzx esi, bh
mov esi, dword [esi*4 + str.ccccwwww]
and esi, 0xff0000
xor edx, esi
xor dword [esp + 0x1c], edx
mov esi, dword [esp + 0x1c]
xor dword [esp + 0x14], esi
mov edx, dword [esp + 0x14]
xor dword [esp + 0x18], edx
mov esi, dword [esp + 0x18]
movd xmm0, dword [esp + 0x1c]
movd xmm3, edx
xor eax, esi
movd xmm1, esi
movd xmm2, eax
punpckldq xmm0, xmm3
punpckldq xmm1, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [ecx - 0x20], xmm0
cmp edi, 7
jne 0x1001e258
mov edx, 0xe
jmp 0x1001d999