Function at 0x6fa14920
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 0x6fa153c4
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x6fa153e0
mov eax, dword [esp + 0x54]
and eax, 0xfffffff7
cmp eax, 0x10
je 0x6fa1495b
cmp dword [esp + 0x54], 0x20
mov eax, 3
jne 0x6fa149d3
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 0x6fa14981
cmp edx, ebp
mov eax, 4
jne 0x6fa149d3
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 0x6fa149e0
cmp dword [esp + 0x54], 0x18
je 0x6fa15050
cmp dword [esp + 0x54], 0x20
mov eax, 1
je 0x6fa14e90
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 + 0x6faaef40]
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 + 0x6faae740]
movzx edx, ch
mov ecx, dword [esp + 0x5c]
xor eax, dword [edx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
mov ebp, dword [esp + 0x5c]
xor eax, dword [ecx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor eax, dword [ecx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor eax, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
mov edi, dword [esp + 0x5c]
xor eax, ebp
xor eax, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor eax, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
mov edi, dword [esp + 0x5c]
xor eax, ebp
xor eax, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor eax, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
mov edi, dword [esp + 0x5c]
xor eax, ebp
xor eax, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor eax, dword [ebx*4 + 0x6faaeb40]
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 0x6fa14e6a
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 + 0x6faad740]
xor edx, dword [edi*4 + 0x6faacb40]
movzx edi, bl
xor edx, dword [edi*4 + 0x6faad340]
mov edi, edx
mov edx, ebp
movzx ebp, dh
xor edi, dword [ebp*4 + 0x6faacf40]
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 + 0x6faad740]
xor edx, dword [edi*4 + 0x6faacb40]
movzx edi, bl
xor edx, dword [edi*4 + 0x6faad340]
mov edi, edx
mov edx, ebp
movzx ebp, dh
xor edi, dword [ebp*4 + 0x6faacf40]
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 + 0x6faad740]
xor edx, dword [edi*4 + 0x6faacb40]
movzx edi, bl
xor edx, dword [edi*4 + 0x6faad340]
mov edi, edx
mov edx, ebp
movzx ebp, dh
xor edi, dword [ebp*4 + 0x6faacf40]
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 + 0x6faad740]
xor edx, dword [edi*4 + 0x6faacb40]
movzx edi, bl
mov ebx, dword [esp + 0x1c]
xor edx, dword [edi*4 + 0x6faad340]
mov edi, edx
mov edx, ebp
movzx ebp, dh
xor edi, dword [ebp*4 + 0x6faacf40]
mov dword [ecx + 0xc], edi
cmp ebx, dword [esi + 0x1e0]
jl 0x6fa14d65
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], 0x6faacb00
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 0x6fa14fe2
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 + 0x6faaef40]
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 + 0x6faae740]
mov edi, dword [edx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor edx, dword [ebp*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor eax, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
mov edi, dword [esp + 0x1c]
xor eax, dword [edx*4 + 0x6faaeb40]
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], 0x6faacb18
mov dword [esi + 8], edi
mov dword [esp + 0x28], edi
mov dword [esi + 0xc], ebp
jne 0x6fa14ed0
jmp 0x6fa14d16
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 + 0x6faaef40]
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 + 0x6faae740]
mov ebx, dword [esp + 0x5c]
xor edx, dword [ecx*4 + 0x6faaeb40]
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 + 0x6faaef40]
xor ecx, dword [ebx*4 + str.cwko0]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, 0x2000000
xor ecx, dword [ebx*4 + 0x6faae740]
movzx ebx, ah
xor ecx, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
mov ebx, dword [esp + 0x5c]
xor edx, dword [ecx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
movzx ebx, ah
xor ecx, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
xor ebp, dword [ebx*4 + str.cwko0]
movzx ebx, cl
movzx ecx, ah
xor ebp, 0x10000000
xor ebp, dword [ebx*4 + 0x6faae740]
mov ebx, dword [esp + 0x20]
xor ebp, dword [ecx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor ecx, dword [ebx*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
movzx edi, ah
xor ebx, dword [edi*4 + 0x6faaeb40]
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 + 0x6faaef40]
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 + 0x6faae740]
xor edx, dword [eax*4 + 0x6faaeb40]
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 0x6fa14d16
mov dword [esp + 8], 0x7f
mov dword [esp + 4], str.src_ciphers_aes_aes.c
mov dword [esp], 0x6faac9e9
call fcn.6fa1c350
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.6fa1c350
lea esi, [esi]
push ebp
push edi
mov eax, 0x10fc
push esi
push ebx
call fcn.6fa9fa30
mov ebp, 0x6faaca24
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.6fa1cdf0
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.6fa14920
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x6fa156dd
lea edi, [ebp + 0x20]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.6fa14050
lea ecx, [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.6fa14440
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.6fa1c320
test eax, eax
jne 0x6fa156d5
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.6fa1c320
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x6fa156d5
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.6fa14050
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14050
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14050
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14050
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14050
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14050
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14050
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14050
sub edi, 8
jne 0x6fa15520
mov edi, 0x3e8
nop
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14440
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14440
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14440
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14440
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14440
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14440
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14440
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call fcn.6fa14440
sub edi, 8
jne 0x6fa155b0
cmp byte [esp + 0x30], 0
jne 0x6fa156d5
cmp byte [esp + 0x31], 0
jne 0x6fa156d5
cmp byte [esp + 0x32], 0
jne 0x6fa156d5
cmp byte [esp + 0x33], 0
jne 0x6fa156d5
cmp byte [esp + 0x34], 0
jne 0x6fa156d5
cmp byte [esp + 0x35], 0
jne 0x6fa156d5
cmp byte [esp + 0x36], 0
jne 0x6fa156d5
cmp byte [esp + 0x37], 0
jne 0x6fa156d5
cmp byte [esp + 0x38], 0
jne 0x6fa156d5
cmp byte [esp + 0x39], 0
jne 0x6fa156d5
cmp byte [esp + 0x3a], 0
jne 0x6fa156d5
cmp byte [esp + 0x3b], 0
jne 0x6fa156d5
cmp byte [esp + 0x3c], 0
jne 0x6fa156d5
cmp byte [esp + 0x3d], 0
jne 0x6fa156d5
cmp byte [esp + 0x3e], 0
jne 0x6fa156d5
cmp byte [esp + 0x3f], 0
jne 0x6fa156d5
add dword [esp + 0x28], 1
add ebp, 0x44
mov eax, dword [esp + 0x28]
cmp eax, 3
jne 0x6fa15425
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