Function at 0x6ebd6560
Capabilities:
Encode data using xor
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
test ecx, ecx
je 0x6ebd7004
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x6ebd7020
mov eax, dword [esp + 0x54]
and eax, 0xfffffff7
cmp eax, 0x10
je 0x6ebd659b
cmp dword [esp + 0x54], 0x20
mov eax, 3
jne 0x6ebd6613
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x54]
add edi, 7
test ebx, ebx
cmovns edi, dword [esp + 0x54]
sar edi, 3
test edx, edx
lea ebp, [edi + edi + 6]
je 0x6ebd65c1
cmp edx, ebp
mov eax, 4
jne 0x6ebd6613
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x54], 0x10
mov ebx, dword [esp + 0x5c]
mov dword [eax + 0x1e0], ebp
mov edx, dword [ecx]
bswap edx
mov dword [eax], edx
mov edi, dword [ecx + 4]
bswap edi
mov dword [eax + 4], edi
mov esi, dword [ecx + 8]
bswap esi
mov dword [eax + 8], esi
mov ebp, dword [ecx + 0xc]
mov dword [esp + 0x1c], esi
bswap ebp
mov dword [ebx + 0xc], ebp
je 0x6ebd6620
cmp dword [esp + 0x54], 0x18
je 0x6ebd6c90
cmp dword [esp + 0x54], 0x20
mov eax, 1
je 0x6ebd6ad0
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, ebp
mov eax, edx
mov edx, ebp
movzx ecx, cl
xor eax, 0x1000000
shr edx, 0x18
xor eax, dword [ecx*4 + 0x6ec6ffe0]
mov ecx, ebp
mov esi, dword [esp + 0x1c]
shr ecx, 0x10
xor eax, dword [edx*4 + str.cwko0]
movzx edx, cl
mov ecx, ebp
xor eax, dword [edx*4 + 0x6ec6f7e0]
movzx edx, ch
mov ecx, dword [esp + 0x5c]
xor eax, dword [edx*4 + 0x6ec6fbe0]
mov edx, esi
xor edi, eax
mov dword [ebx + 0x10], eax
xor eax, 0x2000000
xor edx, edi
mov dword [ebx + 0x14], edi
mov dword [ecx + 0x18], edx
xor edx, ebp
mov dword [ecx + 0x1c], edx
movzx ebp, dl
mov ecx, edx
xor eax, dword [ebp*4 + 0x6ec6ffe0]
shr ecx, 0x18
xor eax, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 0x10
movzx ebp, cl
movzx ecx, dh
xor eax, dword [ebp*4 + 0x6ec6f7e0]
mov ebp, dword [esp + 0x5c]
xor eax, dword [ecx*4 + 0x6ec6fbe0]
xor esi, eax
xor edi, eax
mov dword [ebp + 0x20], eax
mov ecx, esi
mov dword [ebp + 0x24], edi
mov dword [ebp + 0x28], esi
xor ecx, edx
xor eax, 0x4000000
mov dword [ebx + 0x2c], ecx
movzx ebx, cl
mov ebp, ecx
xor eax, dword [ebx*4 + 0x6ec6ffe0]
mov ebx, ecx
shr ebp, 0x18
shr ebx, 0x10
xor eax, dword [ebp*4 + str.cwko0]
movzx ecx, ch
movzx ebp, bl
mov ebx, dword [esp + 0x5c]
xor eax, dword [ebp*4 + 0x6ec6f7e0]
xor eax, dword [ecx*4 + 0x6ec6fbe0]
mov ecx, edi
mov edi, dword [esp + 0x5c]
xor ecx, eax
mov dword [ebx + 0x30], eax
xor eax, 0x8000000
mov dword [edi + 0x34], ecx
mov edi, dword [esp + 0x5c]
mov ebp, ecx
xor edx, ecx
xor ebp, esi
mov ebx, edx
mov dword [edi + 0x38], ebp
movzx ebp, dl
mov dword [edi + 0x3c], edx
xor eax, dword [ebp*4 + 0x6ec6ffe0]
shr ebx, 0x18
xor eax, dword [ebx*4 + str.cwko0]
mov ebx, edx
shr ebx, 0x10
movzx ebp, bl
movzx ebx, dh
xor eax, dword [ebp*4 + 0x6ec6f7e0]
xor eax, dword [ebx*4 + 0x6ec6fbe0]
xor esi, eax
xor ecx, eax
mov dword [edi + 0x40], eax
mov ebx, esi
mov dword [edi + 0x44], ecx
mov dword [edi + 0x48], esi
xor ebx, edx
xor eax, 0x10000000
mov dword [edi + 0x4c], ebx
mov ebp, ebx
movzx edi, bl
xor eax, dword [edi*4 + 0x6ec6ffe0]
shr ebp, 0x18
xor eax, dword [ebp*4 + str.cwko0]
mov ebp, eax
mov eax, ebx
movzx ebx, bh
shr eax, 0x10
movzx edi, al
mov eax, dword [edi*4 + 0x6ec6f7e0]
mov edi, dword [esp + 0x5c]
xor eax, ebp
xor eax, dword [ebx*4 + 0x6ec6fbe0]
mov ebp, dword [esp + 0x5c]
mov ebx, esi
xor ecx, eax
mov dword [ebp + 0x50], eax
xor eax, 0x20000000
xor edx, ecx
xor ebx, ecx
mov dword [ebp + 0x54], ecx
mov dword [edi + 0x58], ebx
movzx ebx, dl
mov ebp, edx
xor eax, dword [ebx*4 + 0x6ec6ffe0]
mov ebx, edx
shr ebp, 0x18
shr ebx, 0x10
xor eax, dword [ebp*4 + str.cwko0]
mov dword [edi + 0x5c], edx
movzx ebp, bl
movzx ebx, dh
xor eax, dword [ebp*4 + 0x6ec6f7e0]
xor eax, dword [ebx*4 + 0x6ec6fbe0]
mov ebx, edx
xor esi, eax
xor ecx, eax
mov dword [edi + 0x60], eax
xor ebx, esi
mov dword [edi + 0x64], ecx
mov dword [edi + 0x68], esi
mov dword [edi + 0x6c], ebx
mov ebp, ebx
movzx edi, bl
shr ebp, 0x18
xor eax, 0x40000000
xor eax, dword [edi*4 + 0x6ec6ffe0]
xor eax, dword [ebp*4 + str.cwko0]
mov ebp, eax
mov eax, ebx
movzx ebx, bh
shr eax, 0x10
movzx edi, al
mov eax, dword [edi*4 + 0x6ec6f7e0]
mov edi, dword [esp + 0x5c]
xor eax, ebp
xor eax, dword [ebx*4 + 0x6ec6fbe0]
mov ebp, dword [esp + 0x5c]
mov ebx, esi
xor ecx, eax
mov dword [ebp + 0x70], eax
add eax, 0x80000000
xor edx, ecx
xor ebx, ecx
mov dword [ebp + 0x74], ecx
mov dword [edi + 0x78], ebx
movzx ebx, dl
mov ebp, edx
xor eax, dword [ebx*4 + 0x6ec6ffe0]
mov ebx, edx
shr ebp, 0x18
shr ebx, 0x10
xor eax, dword [ebp*4 + str.cwko0]
mov dword [edi + 0x7c], edx
movzx ebp, bl
movzx ebx, dh
xor eax, dword [ebp*4 + 0x6ec6f7e0]
xor eax, dword [ebx*4 + 0x6ec6fbe0]
mov ebx, edx
xor esi, eax
xor ecx, eax
mov dword [edi + 0x80], eax
xor ebx, esi
mov dword [edi + 0x84], ecx
mov dword [edi + 0x88], esi
mov dword [edi + 0x8c], ebx
mov ebp, ebx
movzx edi, bl
shr ebp, 0x18
xor eax, 0x1b000000
xor eax, dword [edi*4 + 0x6ec6ffe0]
xor eax, dword [ebp*4 + str.cwko0]
mov ebp, eax
mov eax, ebx
movzx ebx, bh
shr eax, 0x10
movzx edi, al
mov eax, dword [edi*4 + 0x6ec6f7e0]
mov edi, dword [esp + 0x5c]
xor eax, ebp
xor eax, dword [ebx*4 + 0x6ec6fbe0]
mov ebp, dword [esp + 0x5c]
mov ebx, esi
xor ecx, eax
mov dword [ebp + 0x90], eax
xor eax, 0x36000000
xor edx, ecx
xor ebx, ecx
mov dword [ebp + 0x94], ecx
mov dword [edi + 0x98], ebx
movzx ebx, dl
mov ebp, edx
xor eax, dword [ebx*4 + 0x6ec6ffe0]
mov ebx, edx
shr ebp, 0x18
shr ebx, 0x10
xor eax, dword [ebp*4 + str.cwko0]
mov dword [edi + 0x9c], edx
movzx ebp, bl
movzx ebx, dh
xor eax, dword [ebp*4 + 0x6ec6f7e0]
xor eax, dword [ebx*4 + 0x6ec6fbe0]
xor esi, eax
xor ecx, eax
mov dword [edi + 0xa0], eax
xor edx, esi
mov dword [edi + 0xa4], ecx
mov dword [edi + 0xa8], esi
mov dword [edi + 0xac], edx
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
lea eax, [edx + esi*4 + 0x60]
mov esi, dword [esp + 0x5c]
lea ecx, [edx + 0xf0]
mov ebp, dword [eax]
cmp dword [esi + 0x1e0], 1
mov dword [esi + 0xf0], ebp
mov ebx, dword [eax + 4]
mov dword [esi + 0xf4], ebx
mov edi, dword [eax + 8]
mov dword [esi + 0xf8], edi
mov edx, dword [eax + 0xc]
mov dword [esi + 0xfc], edx
jle 0x6ebd6aaa
mov ebp, 1
mov dword [esp + 0x1c], ebp
sub eax, 0x10
mov ebp, dword [eax]
add ecx, 0x10
add dword [esp + 0x1c], 1
mov ebx, ebp
mov edx, ebp
movzx edi, bl
mov ebx, ebp
shr edx, 0x18
shr ebx, 0x10
mov edx, dword [edx*4 + 0x6ec6e7e0]
xor edx, dword [edi*4 + 0x6ec6dbe0]
movzx edi, bl
xor edx, dword [edi*4 + 0x6ec6e3e0]
mov edi, edx
mov edx, ebp
movzx ebp, dh
xor edi, dword [ebp*4 + 0x6ec6dfe0]
mov dword [ecx], edi
mov ebp, dword [eax + 4]
mov ebx, ebp
mov edx, ebp
movzx edi, bl
mov ebx, ebp
shr edx, 0x18
shr ebx, 0x10
mov edx, dword [edx*4 + 0x6ec6e7e0]
xor edx, dword [edi*4 + 0x6ec6dbe0]
movzx edi, bl
xor edx, dword [edi*4 + 0x6ec6e3e0]
mov edi, edx
mov edx, ebp
movzx ebp, dh
xor edi, dword [ebp*4 + 0x6ec6dfe0]
mov dword [ecx + 4], edi
mov ebp, dword [eax + 8]
mov ebx, ebp
mov edx, ebp
movzx edi, bl
mov ebx, ebp
shr edx, 0x18
shr ebx, 0x10
mov edx, dword [edx*4 + 0x6ec6e7e0]
xor edx, dword [edi*4 + 0x6ec6dbe0]
movzx edi, bl
xor edx, dword [edi*4 + 0x6ec6e3e0]
mov edi, edx
mov edx, ebp
movzx ebp, dh
xor edi, dword [ebp*4 + 0x6ec6dfe0]
mov dword [ecx + 8], edi
mov ebp, dword [eax + 0xc]
mov ebx, ebp
mov edx, ebp
movzx edi, bl
mov ebx, ebp
shr edx, 0x18
shr ebx, 0x10
mov edx, dword [edx*4 + 0x6ec6e7e0]
xor edx, dword [edi*4 + 0x6ec6dbe0]
movzx edi, bl
mov ebx, dword [esp + 0x1c]
xor edx, dword [edi*4 + 0x6ec6e3e0]
mov edi, edx
mov edx, ebp
movzx ebp, dh
xor edi, dword [ebp*4 + 0x6ec6dfe0]
mov dword [ecx + 0xc], edi
cmp ebx, dword [esi + 0x1e0]
jl 0x6ebd69a5
mov esi, dword [eax - 0x10]
mov dword [ecx + 0x10], esi
mov edx, dword [eax - 0xc]
mov dword [ecx + 0x14], edx
mov ebp, dword [eax - 8]
mov dword [ecx + 0x18], ebp
mov eax, dword [eax - 4]
mov dword [ecx + 0x1c], eax
add esp, 0x3c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ecx + 0x10]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x20], 0x6ec6dba0
mov dword [esp + 0x24], edi
bswap eax
lea esi, [esi + 0x20]
mov dword [esi - 0x10], eax
mov ebx, dword [ecx + 0x14]
bswap ebx
mov dword [esi - 0xc], ebx
mov eax, dword [ecx + 0x18]
bswap eax
mov dword [esi - 8], eax
mov ecx, dword [ecx + 0x1c]
bswap ecx
mov dword [esi - 4], ecx
jmp 0x6ebd6c22
mov dword [esp + 0x2c], ebp
mov ebx, ebp
add esi, 0x40
ror ebx, 8
mov ebp, ebx
movzx edi, bl
shr ebp, 0x18
mov edx, dword [edi*4 + 0x6ec6ffe0]
xor edx, dword [ebp*4 + str.cwko0]
xor edx, dword [esi - 0x50]
mov dword [esp + 0x24], edx
mov edx, ebx
mov ebp, dword [esp + 0x24]
shr edx, 0x10
movzx edi, dl
movzx edx, bh
mov ebx, dword [esp + 0x20]
xor ebp, dword [edi*4 + 0x6ec6f7e0]
mov edi, dword [edx*4 + 0x6ec6fbe0]
add dword [esp + 0x20], 8
xor edi, ebp
mov dword [esi - 0x30], edi
xor edi, dword [esi - 0x4c]
mov dword [esi - 0x2c], edi
xor edi, dword [esi - 0x48]
xor ecx, edi
mov dword [esi - 0x28], edi
mov dword [esi - 0x24], ecx
movzx ebp, cl
xor eax, dword [ebx + 4]
mov edx, ecx
xor eax, dword [ebp*4 + 0x6ec6ffe0]
movzx ebp, ch
shr edx, 0x18
mov ebx, dword [esp + 0x1c]
xor eax, dword [edx*4 + str.cwko0]
mov edx, eax
mov eax, ecx
shr eax, 0x10
movzx edi, al
mov eax, dword [esp + 0x28]
xor edx, dword [edi*4 + 0x6ec6f7e0]
xor edx, dword [ebp*4 + 0x6ec6fbe0]
mov ebp, dword [esp + 0x2c]
xor ebx, edx
mov dword [esi - 0x20], edx
xor eax, ebx
mov dword [esi - 0x1c], ebx
mov dword [esp + 0x24], ebx
xor ebp, eax
mov dword [esi - 0x18], eax
mov dword [esp + 0x1c], eax
mov ebx, ebp
mov dword [esi - 0x14], ebp
ror ebx, 8
mov edi, ebx
movzx eax, bl
shr edi, 0x18
mov eax, dword [eax*4 + 0x6ec6ffe0]
xor eax, dword [edi*4 + str.cwko0]
xor eax, dword [esi - 0x30]
mov dword [esp + 0x28], eax
mov eax, ebx
movzx ebx, bh
shr eax, 0x10
movzx edi, al
mov eax, dword [esp + 0x28]
xor eax, dword [edi*4 + 0x6ec6f7e0]
xor eax, dword [ebx*4 + 0x6ec6fbe0]
mov dword [esi - 0x10], eax
xor eax, dword [esi - 0x2c]
mov dword [esi - 0xc], eax
xor eax, dword [esi - 0x28]
xor ecx, eax
mov dword [esi - 8], eax
mov dword [esi - 4], ecx
mov edi, dword [esp + 0x20]
mov ecx, dword [esi - 4]
mov eax, dword [edi]
movzx ebx, cl
xor eax, edx
mov edx, ecx
xor eax, dword [ebx*4 + 0x6ec6ffe0]
mov ebx, ecx
shr edx, 0x18
shr ebx, 0x10
xor eax, dword [edx*4 + str.cwko0]
movzx edx, ch
movzx edi, bl
mov ebx, dword [esp + 0x24]
xor eax, dword [edi*4 + 0x6ec6f7e0]
mov edi, dword [esp + 0x1c]
xor eax, dword [edx*4 + 0x6ec6fbe0]
xor ebx, eax
mov dword [esi], eax
xor edi, ebx
mov dword [esi + 4], ebx
mov dword [esp + 0x1c], ebx
xor ebp, edi
cmp dword [esp + 0x20], 0x6ec6dbb8
mov dword [esi + 8], edi
mov dword [esp + 0x28], edi
mov dword [esi + 0xc], ebp
jne 0x6ebd6b10
jmp 0x6ebd6956
mov eax, dword [ecx + 0x10]
mov esi, ebx
xor edx, 0x1000000
bswap eax
mov dword [ebx + 0x10], eax
mov eax, dword [ecx + 0x14]
bswap eax
movzx ecx, al
mov dword [ebx + 0x14], eax
mov ebx, eax
xor edx, dword [ecx*4 + 0x6ec6ffe0]
mov ecx, eax
shr ebx, 0x18
shr ecx, 0x10
xor edx, dword [ebx*4 + str.cwko0]
movzx ebx, cl
movzx ecx, ah
xor edx, dword [ebx*4 + 0x6ec6f7e0]
mov ebx, dword [esp + 0x5c]
xor edx, dword [ecx*4 + 0x6ec6fbe0]
mov dword [esi + 0x18], edx
mov esi, edi
xor esi, edx
mov dword [ebx + 0x1c], esi
xor esi, dword [esp + 0x1c]
mov dword [ebx + 0x20], esi
mov dword [esp + 0x1c], esi
xor esi, ebp
mov dword [ebx + 0x24], esi
xor esi, dword [ebx + 0x10]
xor eax, esi
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x2c], eax
mov ebx, eax
movzx ecx, al
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x6ec6ffe0]
xor ecx, dword [ebx*4 + str.cwko0]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, 0x2000000
xor ecx, dword [ebx*4 + 0x6ec6f7e0]
movzx ebx, ah
xor ecx, dword [ebx*4 + 0x6ec6fbe0]
xor edx, ecx
xor edi, ecx
mov ecx, ebp
mov ebx, edx
mov edx, dword [esp + 0x5c]
xor ecx, edi
mov dword [esp + 0x20], ebx
xor esi, ecx
mov dword [esp + 0x24], ecx
xor eax, esi
mov dword [edx + 0x30], ebx
mov ebx, dword [esp + 0x1c]
mov dword [edx + 0x34], edi
xor ebx, edi
mov dword [edx + 0x38], ebx
mov edx, dword [esp + 0x5c]
mov ebx, eax
shr ebx, 0x18
mov dword [edx + 0x3c], ecx
movzx ecx, al
mov dword [edx + 0x40], esi
mov dword [edx + 0x44], eax
mov edx, dword [ecx*4 + 0x6ec6ffe0]
mov ecx, eax
xor edx, dword [ebx*4 + str.cwko0]
shr ecx, 0x10
movzx ebx, cl
movzx ecx, ah
xor edx, 0x4000000
xor edx, dword [ebx*4 + 0x6ec6f7e0]
mov ebx, dword [esp + 0x5c]
xor edx, dword [ecx*4 + 0x6ec6fbe0]
mov ecx, dword [esp + 0x5c]
xor edx, dword [esp + 0x20]
mov dword [ebx + 0x48], edx
mov ebx, edi
xor ebx, edx
mov dword [ecx + 0x4c], ebx
mov ebx, dword [esp + 0x1c]
xor ebx, edx
mov dword [ecx + 0x50], ebx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ebx
xor ecx, ebx
mov ebx, dword [esp + 0x5c]
xor esi, ecx
xor eax, esi
mov dword [ebx + 0x54], ecx
mov dword [ebx + 0x58], esi
movzx ecx, al
mov dword [ebx + 0x5c], eax
mov ebx, eax
mov ecx, dword [ecx*4 + 0x6ec6ffe0]
shr ebx, 0x18
xor ecx, dword [ebx*4 + str.cwko0]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, 0x8000000
xor ecx, dword [ebx*4 + 0x6ec6f7e0]
movzx ebx, ah
xor ecx, dword [ebx*4 + 0x6ec6fbe0]
mov ebx, dword [esp + 0x5c]
xor edi, ecx
xor edx, ecx
xor ebp, ecx
mov dword [ebx + 0x60], edx
mov dword [ebx + 0x64], edi
xor esi, ebp
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x24], edi
xor eax, esi
mov dword [esp + 0x1c], ebp
mov ecx, eax
shr ecx, 0x10
xor ebx, edi
mov edi, dword [esp + 0x5c]
mov dword [edi + 0x68], ebx
mov ebx, eax
mov dword [edi + 0x6c], ebp
shr ebx, 0x18
movzx ebp, al
mov dword [edi + 0x70], esi
mov dword [edi + 0x74], eax
mov ebp, dword [ebp*4 + 0x6ec6ffe0]
xor ebp, dword [ebx*4 + str.cwko0]
movzx ebx, cl
movzx ecx, ah
xor ebp, 0x10000000
xor ebp, dword [ebx*4 + 0x6ec6f7e0]
mov ebx, dword [esp + 0x20]
xor ebp, dword [ecx*4 + 0x6ec6fbe0]
mov ecx, dword [esp + 0x1c]
xor edx, ebp
mov ebp, dword [esp + 0x24]
xor ebx, edx
mov dword [edi + 0x78], edx
xor ecx, ebx
mov dword [edi + 0x80], ebx
mov dword [esp + 0x20], ebx
xor esi, ecx
xor ebp, edx
mov dword [edi + 0x84], ecx
xor eax, esi
mov dword [edi + 0x7c], ebp
mov dword [edi + 0x88], esi
mov ebx, eax
movzx ebp, al
mov dword [edi + 0x8c], eax
shr ebx, 0x18
mov ecx, dword [ebp*4 + 0x6ec6ffe0]
xor ecx, dword [ebx*4 + str.cwko0]
mov ebx, eax
shr ebx, 0x10
movzx ebp, bl
movzx ebx, ah
xor ecx, 0x20000000
xor ecx, dword [ebp*4 + 0x6ec6f7e0]
xor ecx, dword [ebx*4 + 0x6ec6fbe0]
xor edx, ecx
xor ecx, dword [esp + 0x24]
mov dword [edi + 0x90], edx
mov ebp, edx
mov edx, dword [esp + 0x20]
xor edx, ecx
mov dword [edi + 0x94], ecx
mov dword [edi + 0x98], edx
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x5c]
xor edx, ecx
xor esi, edx
mov dword [edi + 0x9c], edx
xor eax, esi
mov dword [edi + 0xa0], esi
mov dword [edi + 0xa4], eax
mov edi, eax
movzx ebx, al
shr edi, 0x18
mov ebx, dword [ebx*4 + 0x6ec6ffe0]
xor ebx, dword [edi*4 + str.cwko0]
mov edi, eax
shr edi, 0x10
xor ebx, 0x40000000
mov dword [esp + 0x24], ebx
mov ebx, edi
movzx edi, bl
mov ebx, dword [esp + 0x24]
xor ebx, dword [edi*4 + 0x6ec6f7e0]
movzx edi, ah
xor ebx, dword [edi*4 + 0x6ec6fbe0]
mov edi, dword [esp + 0x5c]
xor ebp, ebx
mov ebx, dword [esp + 0x5c]
mov dword [ebx + 0xa8], ebp
mov ebx, ecx
xor ebx, ebp
mov dword [edi + 0xac], ebx
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x5c]
xor edi, ebp
xor edx, edi
mov dword [ebx + 0xb0], edi
mov dword [ebx + 0xb4], edx
xor edx, esi
mov esi, ebx
xor eax, edx
mov dword [ebx + 0xb8], edx
mov dword [ebx + 0xbc], eax
mov ebx, eax
movzx edx, al
shr ebx, 0x18
mov edx, dword [edx*4 + 0x6ec6ffe0]
xor edx, dword [ebx*4 + str.cwko0]
mov ebx, eax
movzx eax, ah
shr ebx, 0x10
movzx ebx, bl
add edx, 0x80000000
xor edx, dword [ebx*4 + 0x6ec6f7e0]
xor edx, dword [eax*4 + 0x6ec6fbe0]
xor ecx, edx
xor ebp, edx
xor edx, dword [esp + 0x1c]
mov dword [esi + 0xc4], ecx
xor ecx, edi
mov dword [esi + 0xc0], ebp
mov dword [esi + 0xc8], ecx
mov dword [esi + 0xcc], edx
jmp 0x6ebd6956
mov dword [esp + 8], 0x7f
mov dword [esp + 4], str.src_ciphers_aes_aes.c
mov dword [esp], 0x6ec6da89
call fcn.6ebddf90
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], str.src_ciphers_aes_aes.c
mov dword [esp], str.skey___NULL
call fcn.6ebddf90
lea esi, [esi]
push ebp
push edi
mov eax, 0x10fc
push esi
push ebx
call fcn.6ec61670
mov ebp, 0x6ec6dac4
sub esp, eax
lea esi, [esp + 0x50]
lea ebx, [esp + 0x30]
mov dword [esp + 0x28], 0
mov dword [esp + 4], 0x10a0
mov dword [esp], esi
call fcn.6ebdea30
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov edx, dword [ebp - 4]
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.6ebd6560
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x6ebd731d
lea edi, [ebp + 0x20]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.6ebd5c90
lea ecx, [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.6ebd6080
mov eax, dword [esp + 0x28]
lea edx, [ebp + 0x30]
mov dword [esp + 0x10], str.AES_Encrypt
mov dword [esp + 0xc], 0x10
mov dword [esp + 4], 0x10
mov dword [esp + 8], edx
mov dword [esp], ebx
mov dword [esp + 0x14], eax
call fcn.6ebddf60
test eax, eax
jne 0x6ebd7315
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
lea edi, [esp + 0x40]
mov dword [esp + 0x10], str.AES_Decrypt
mov dword [esp + 0xc], 0x10
mov dword [esp + 4], 0x10
mov dword [esp], edi
mov dword [esp + 0x14], ecx
call fcn.6ebddf60
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x6ebd7315
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov edi, 0x3e8
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
nop
lea esi, [esi]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd5c90
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd5c90
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd5c90
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd5c90
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd5c90
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd5c90
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd5c90
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd5c90
sub edi, 8
jne 0x6ebd7160
mov edi, 0x3e8
nop
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd6080
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd6080
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd6080
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd6080
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd6080
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd6080
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd6080
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6ebd6080
sub edi, 8
jne 0x6ebd71f0
cmp byte [esp + 0x30], 0
jne 0x6ebd7315
cmp byte [esp + 0x31], 0
jne 0x6ebd7315
cmp byte [esp + 0x32], 0
jne 0x6ebd7315
cmp byte [esp + 0x33], 0
jne 0x6ebd7315
cmp byte [esp + 0x34], 0
jne 0x6ebd7315
cmp byte [esp + 0x35], 0
jne 0x6ebd7315
cmp byte [esp + 0x36], 0
jne 0x6ebd7315
cmp byte [esp + 0x37], 0
jne 0x6ebd7315
cmp byte [esp + 0x38], 0
jne 0x6ebd7315
cmp byte [esp + 0x39], 0
jne 0x6ebd7315
cmp byte [esp + 0x3a], 0
jne 0x6ebd7315
cmp byte [esp + 0x3b], 0
jne 0x6ebd7315
cmp byte [esp + 0x3c], 0
jne 0x6ebd7315
cmp byte [esp + 0x3d], 0
jne 0x6ebd7315
cmp byte [esp + 0x3e], 0
jne 0x6ebd7315
cmp byte [esp + 0x3f], 0
jne 0x6ebd7315
add dword [esp + 0x28], 1
add ebp, 0x44
mov eax, dword [esp + 0x28]
cmp eax, 3
jne 0x6ebd7065
mov eax, dword [esp + 0x2c]
add esp, 0x10fc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x2c], 5
mov eax, dword [esp + 0x2c]
add esp, 0x10fc
pop ebx
pop esi
pop edi
pop ebp
ret