Function at 0xc6bf4e
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x468
push esi
push edi
mov esi, 0xc71720
mov dword [ebp - 0x84], ecx
lea edi, [ebp - 0x58]
mov dword [ebp - 0x88], edx
xor ecx, ecx
mov dword [ebp - 0x80], 0xc7dedcf8
mov dword [ebp - 0x7c], 0xfb9fb8da
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x78], 0x653ed5da
mov dword [ebp - 0x74], 0xf0969473
mov dword [ebp - 0x70], 0x9b1ba047
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x6c], 0x99a04a4d
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, ecx
mov byte [ebp + eax - 0x420], al
inc eax
cmp eax, 0x100
jb 0xc6bfb4
mov eax, dword [0xc78c10]
mov esi, ecx
mov dword [ebp - 0x40], 0xd
mov dword [ebp - 0x14], eax
xor edx, edx
mov cl, byte [ebp + esi - 0x420]
mov eax, esi
mov byte [ebp - 0x10], cl
div dword [ebp - 0x40]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x58]
mov edx, dword [ebp - 0x14]
add eax, edi
add ecx, eax
or edx, 0xd7f9062
movzx edi, cl
mov dword [ebp - 0x14], edx
mov al, byte [ebp + edi - 0x420]
mov byte [ebp + esi - 0x420], al
inc esi
mov al, byte [ebp - 0x10]
mov byte [ebp + edi - 0x420], al
cmp esi, 0x100
jb 0xc6bfd4
push 5
pop ecx
mov esi, 0xc6f240
mov al, byte [str.imageName]
lea edi, [ebp - 0x3c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp al, byte [ebp - 0x3c]
jne 0xc6c069
xor edi, edi
mov esi, edi
test al, al
je 0xc6c069
cmp byte [ebp + esi - 0x3c], 0
je 0xc6c069
push 0xc76660
push edx
mov ecx, edx
call fcn.00c67779
mov al, byte [esi + 0xc78c85]
inc esi
mov edx, dword [ebp - 0x14]
pop ecx
pop ecx
cmp al, byte [ebp + esi - 0x3c]
je 0xc6c03f
xor eax, eax
mov dword [ebp - 0x20], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + edi - 0x420]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x420]
mov byte [ebp + edi - 0x420], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x420], cl
movzx eax, byte [ebp + edi - 0x420]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x420]
xor al, byte [ebp + esi - 0x80]
mov byte [ebp + esi - 0x2e4], al
inc esi
cmp esi, 0x18
jb 0xc6c072
push 0xd
pop eax
push 0x3c
mov esi, 0xc6f2d4
mov byte [ebp - 0x161], al
pop eax
lea edi, [ebp - 0x188]
mov dword [ebp - 0x64], eax
push 0xc
movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [ebp - 0x12f], al
pop eax
push 0xf
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x10f], al
pop eax
mov dword [ebp - 0x44], eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x10a], al
push 0x15
pop eax
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x6c], eax
mov esi, ecx
mov byte [ebp - 0xe1], al
mov eax, ecx
mov byte [ebp - 0x2cc], cl
mov dword [ebp - 0x168], 0xad3e9f9f
mov word [ebp - 0x164], 0x26d5
mov byte [ebp - 0x162], 0xf1
mov dword [ebp - 0x160], 0xa6d71aab
mov dword [ebp - 0x15c], 0xe5fcd460
mov dword [ebp - 0x158], 0xb19efddd
mov dword [ebp - 0x154], 0xc77300de
mov dword [ebp - 0x150], 0x9bb6ae47
mov dword [ebp - 0x14c], 0x20b026f9
mov dword [ebp - 0x148], 0xb3a6871a
mov dword [ebp - 0x144], 0x26c1ba1
mov dword [ebp - 0x140], 0xc65e621d
mov dword [ebp - 0x13c], 0x6cd8f68a
mov dword [ebp - 0x138], 0xcafa0432
mov dword [ebp - 0x134], 0x185ea8b7
mov byte [ebp - 0x130], 0x3e
mov dword [ebp - 0x12e], 0xb628c685
mov dword [ebp - 0x12a], 0x1b4de617
mov dword [ebp - 0x126], 0x92f5aa1e
mov dword [ebp - 0x122], 0x57506993
mov dword [ebp - 0x11e], 0x57577097
mov dword [ebp - 0x11a], 0x769b8499
mov dword [ebp - 0x116], 0xaf18bf4f
mov word [ebp - 0x112], 0x3102
mov byte [ebp - 0x110], 0x48
mov dword [ebp - 0x10e], 0x7aec9936
mov dword [ebp - 0x109], 0xc29696c4
mov dword [ebp - 0x105], 0x108f8da9
mov dword [ebp - 0x101], 0x23dbad81
mov dword [ebp - 0xfd], 0x84cea6ab
mov dword [ebp - 0xf9], 0x9f524ca0
mov dword [ebp - 0xf5], 0x98d1fbc0
mov dword [ebp - 0xf1], 0x7000b646
mov dword [ebp - 0xed], 0x41e8af8c
mov dword [ebp - 0xe9], 0x521a3792
mov dword [ebp - 0xe5], 0xbf42f8f3
mov dword [ebp - 0xe0], 0x9d41ba10
mov dword [ebp - 0xdc], 0x7d44edad
mov dword [ebp - 0xd8], 0xa3b57957
mov dword [ebp - 0xd4], 0x11e3b484
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6c2a0
mov edx, ecx
mov dword [ebp - 0x48], ecx
mov cl, byte [ebp + edx - 0x290]
mov eax, edx
push 0xc
pop edi
xor edx, edx
mov byte [ebp - 0x10], cl
div edi
movzx ecx, cl
push 0x63
movzx eax, byte [ebp + edx - 0x188]
add eax, esi
mov esi, str.device_or_resource_busy
add ecx, eax
movzx eax, cl
mov ecx, edi
lea edi, [ebp - 0xc0]
mov dword [ebp - 0x40], eax
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop ecx
mov edx, eax
cmp cx, word [ebp - 0xc0]
jne 0xc6c321
xor edi, edi
test cx, cx
je 0xc6c321
cmp word [ebp + eax - 0xc0], di
je 0xc6c321
inc edx
lea eax, [edx + edx]
movzx ecx, word [eax + 0xc76660]
cmp cx, word [ebp + eax - 0xc0]
je 0xc6c2fd
movzx eax, byte [ebp + edx*2 - 0xc0]
movzx ecx, byte [edx*2 + 0xc76660]
sub ecx, eax
cmp ecx, 0x52f
mov ecx, dword [ebp - 0x14]
jae 0xc6c346
and ecx, 0x4409d23b
jmp 0xc6c34c
xor ecx, 0x3d128a20
mov esi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x14], ecx
mov al, byte [ebp + esi - 0x290]
mov byte [ebp + edx - 0x290], al
inc edx
mov al, byte [ebp - 0x10]
mov byte [ebp + esi - 0x290], al
mov dword [ebp - 0x48], edx
cmp edx, 0x100
jb 0xc6c2b4
or ecx, 0x845b97d1
xor eax, eax
mov dword [ebp - 0x14], ecx
mov edi, eax
mov dword [ebp - 0x20], eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + edi - 0x290]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + edi - 0x290], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x290], cl
movzx eax, byte [ebp + edi - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + esi - 0x168]
mov byte [ebp + esi - 0x3c0], al
inc esi
cmp esi, 0x98
jb 0xc6c38f
push 0x14
pop eax
mov esi, 0xc74840
mov dword [ebp - 0x18], eax
push 0x12
lea edi, [ebp - 0x58]
mov byte [ebp - 0xbe], al
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
push 0x15
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0xa4], al
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0xa1], al
push 0xf
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0x9c], al
mov eax, ecx
mov byte [ebp - 0x328], cl
mov dword [ebp - 0xd0], 0xef62f188
mov dword [ebp - 0xcc], 0x94a13041
mov dword [ebp - 0xc8], 0xed63e6d4
mov dword [ebp - 0xc4], 0x60bc3338
mov word [ebp - 0xc0], 0x1bb7
mov dword [ebp - 0xbd], 0xb72df088
mov dword [ebp - 0xb9], 0x501f5e99
mov dword [ebp - 0xb5], 0x80f01a5e
mov dword [ebp - 0xb1], 0xc2301a25
mov dword [ebp - 0xad], 0x845ce121
mov dword [ebp - 0xa9], 0x72a4cd33
mov byte [ebp - 0xa5], 0xdd
mov word [ebp - 0xa3], 0x4cc2
mov dword [ebp - 0xa0], 0xb83f7018
mov dword [ebp - 0x9b], 0x18d6a96b
mov dword [ebp - 0x97], 0x85a6b897
mov word [ebp - 0x93], 0xddb5
mov byte [ebp - 0x91], 0xb6
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], ecx
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6c4de
mov esi, dword [ebp - 0x14]
mov edi, ecx
mov dword [ebp - 0x40], str.bad_function_call
xor edx, edx
mov cl, byte [ebp + edi - 0x290]
mov eax, edi
mov byte [ebp - 0x10], cl
div dword [ebp - 0x44]
movzx ecx, cl
push str.timestamp
push esi
movzx eax, byte [ebp + edx - 0x58]
add eax, dword [ebp - 0x20]
add ecx, eax
movzx eax, cl
mov ecx, esi
mov dword [ebp - 0x20], eax
call fcn.00c67779
cmp byte [str.bad_function_call], 0
pop ecx
pop ecx
je 0xc6c549
mov eax, str.bad_function_call
xor esi, 0xe91c4a5a
inc eax
cmp byte [eax], 0
jne 0xc6c53a
mov dword [ebp - 0x14], esi
mov ecx, dword [ebp - 0x20]
mov al, byte [ebp + ecx - 0x290]
mov byte [ebp + edi - 0x290], al
inc edi
mov al, byte [ebp - 0x10]
mov byte [ebp + ecx - 0x290], al
cmp edi, 0x100
jb 0xc6c4f9
xor eax, eax
mov dword [ebp - 0x20], eax
mov esi, eax
mov edi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + esi - 0x290]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + esi - 0x290], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x290], cl
movzx eax, byte [ebp + esi - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + edi - 0xd0]
mov byte [ebp + edi - 0x468], al
inc edi
cmp edi, 0x40
jb 0xc6c576
mov esi, 0xc6fec8
mov dword [ebp - 0x3c], 0x76f726f0
lea edi, [ebp - 0x5c]
mov dword [ebp - 0x38], 0x26e02004
xor ecx, ecx
mov dword [ebp - 0x34], 0x551a084b
xor dword [ebp - 0x14], 0x9fbb05d3
movsd dword es:[edi], dword [esi]
push 0x3c
pop eax
mov byte [ebp - 0x29], al
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x428], cl
mov dword [ebp - 0x30], 0xcb8c65a5
mov word [ebp - 0x2c], 0xe564
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x2a], 0x76
mov dword [ebp - 0x28], 0xd1cd23bf
mov dword [ebp - 0x48], ecx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6c627
mov esi, dword [ebp - 0x14]
mov edi, ecx
xor edx, edx
mov cl, byte [ebp + edi - 0x290]
mov eax, edi
mov byte [ebp - 0x10], cl
div dword [ebp - 0x8c]
movzx ecx, cl
add esi, 0xe1d982d0
movzx eax, byte [ebp + edx - 0x5c]
add eax, dword [ebp - 0x48]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x48], ecx
mov al, byte [ebp + ecx - 0x290]
mov byte [ebp + edi - 0x290], al
inc edi
mov al, byte [ebp - 0x10]
mov byte [ebp + ecx - 0x290], al
cmp edi, 0x100
jb 0xc6c63b
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov eax, ecx
mov edi, ecx
inc eax
imul esi, esi, 0xb19352f8
movzx eax, al
mov dword [ebp - 0x14], eax
mov cl, byte [ebp + eax - 0x290]
mov eax, dword [ebp - 0x20]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x14]
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + edx - 0x290], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x290], cl
mov eax, edx
movzx eax, byte [ebp + eax - 0x290]
add eax, dword [ebp - 0x44]
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + edi - 0x3c]
mov byte [ebp + edi - 0x300], al
inc edi
mov eax, edx
cmp edi, 0x18
jb 0xc6c692
xor eax, eax
mov dword [0xc78c10], esi
lea ecx, [ebp - 0x2e4]
mov byte [ebp - 0x2e8], al
mov dword [ebp - 0x174], eax
call fcn.00c4d02f
mov edi, eax
xor ecx, ecx
mov edx, edi
mov dword [ebp - 0x190], edi
call fcn.00c4d470
mov edx, edi
xor ecx, ecx
mov esi, eax
call fcn.00c4d470
mov ecx, 0x800
mov dword [ebp - 0x180], eax
call fcn.00c4b9d3
mov edi, eax
mov ecx, 0x208
mov dword [ebp - 0x16c], edi
call fcn.00c4b9d3
imul ecx, dword [0xc78c10], 0x3f2628
mov dword [ebp - 0x178], eax
mov dword [0xc78c10], ecx
mov ecx, 0x500000
call fcn.00c4b9d3
lea ecx, [ebp - 0x174]
mov dword [ebp - 0x48], eax
push ecx
mov ecx, dword [ebp - 0x84]
lea edx, [ebp - 0x3c0]
push 1
push dword [ebx + 8]
push eax
push dword [ebp - 0x88]
call fcn.00c4f0ca
add esp, 0x14
test eax, eax
jne 0xc6d4a4
cmp dword [ebp - 0x174], 0x400
jb 0xc6d4a4
lea ecx, [ebp - 0x468]
call fcn.00c4d05e
xor dword [0xc78c10], 0x4224e72c
lea ecx, [ebp - 0x300]
mov dword [ebp - 0x88], eax
call fcn.00c4d05e
sub dword [0xc78c10], 0x519b0259
mov ecx, esi
mov dword [ebp - 0x84], eax
call fcn.00c4d5c1
mov esi, eax
mov dword [ebp - 0x18c], esi
call fcn.00c58400
mov dword [ebp - 0x170], eax
cmp esi, 1
jne 0xc6cff3
push 0xf
pop eax
mov ecx, eax
mov dword [ebp - 0x3c], 0xeffa587f
mov eax, dword [0xc78c10]
lea edi, [ebp - 0xd0]
mov esi, 0xc734f4
mov dword [ebp - 0x38], 0xee7974d7
rep movsd dword es:[edi], dword [esi]
push str.timestamp
push eax
mov ecx, eax
mov dword [ebp - 0x34], 0xf7001b04
mov dword [ebp - 0x30], 0xa517853d
mov dword [ebp - 0x2c], 0xaa7f559c
mov dword [ebp - 0x28], 0x61978825
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x14], eax
call fcn.00c67779
mov esi, 0xc74788
lea edi, [ebp - 0x74]
xor eax, eax
pop ecx
pop ecx
movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [ebp - 0x18], eax
mov al, byte [str.bad_function_call]
mov byte [ebp - 0x10], al
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp al, byte [ebp - 0x74]
jne 0xc6c8aa
test al, al
je 0xc6c8aa
cmp byte [ebp + ecx - 0x74], 0
je 0xc6c8aa
call fcn.00c67f6c
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
mov al, byte [ecx + str.bad_function_call]
cmp al, byte [ebp + ecx - 0x74]
je 0xc6c887
movzx eax, byte [ebp + ecx - 0x74]
movzx ecx, byte [ecx + str.bad_function_call]
sub ecx, eax
cmp ecx, 0xd5d
jae 0xc6c8d0
call fcn.00c67b1d
mov esi, dword [ebp - 0x14]
or esi, 0x2638dac7
jmp 0xc6c8e9
push 0xc76660
mov ecx, str.bad_function_call
call fcn.00c67921
mov esi, dword [ebp - 0x14]
pop ecx
add esi, 0xefa18c17
and esi, 0xecb73a3d
xor ecx, ecx
mov dword [ebp - 0x14], esi
mov eax, ecx
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6c8f6
mov edi, ecx
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + edi - 0x290]
mov eax, edi
mov byte [ebp - 0x19], cl
div dword [ebp - 0x64]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0xd0]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x290]
mov byte [ebp + edi - 0x290], al
inc edi
mov al, byte [ebp - 0x19]
mov byte [ebp + esi - 0x290], al
cmp edi, 0x100
jb 0xc6c909
mov esi, dword [ebp - 0x14]
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov eax, ecx
mov edi, ecx
inc eax
sub esi, 0x7ece6af6
movzx eax, al
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x18]
mov cl, byte [ebp + eax - 0x290]
mov eax, dword [ebp - 0x20]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + esi - 0x290], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x290], cl
mov eax, esi
mov esi, dword [ebp - 0x14]
movzx eax, byte [ebp + eax - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + edi - 0x3c]
mov byte [ebp + edi - 0x31c], al
inc edi
mov eax, dword [ebp - 0x18]
cmp edi, 0x18
jb 0xc6c959
mov esi, 0xc707d8
mov dword [ebp - 0x3c], 0xb9784860
lea edi, [ebp - 0x58]
mov dword [ebp - 0x38], 0x71d56e1b
xor ecx, ecx
mov dword [ebp - 0x34], 0xdea2d0d4
mov byte [ebp - 0x304], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x30], 0x81826622
mov dword [ebp - 0x2c], 0xd8ddf892
mov dword [ebp - 0x28], 0x70ce1f9a
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x18], ecx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6ca0b
mov edi, ecx
mov dword [ebp - 0x64], 6
mov dword [ebp - 0x44], edi
push 0xe
pop esi
mov eax, edi
mov cl, byte [ebp + edi - 0x290]
xor edx, edx
mov byte [ebp - 0x19], cl
div esi
movzx ecx, cl
mov esi, str.isBackedOff
push 6
movzx eax, byte [ebp + edx - 0x58]
add eax, dword [ebp - 0x18]
add ecx, eax
movzx eax, cl
mov dword [ebp - 0x18], eax
pop ecx
push 0x63
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + edi - 0x290], al
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop ecx
mov edx, eax
cmp cx, word [ebp - 0x80]
jne 0xc6cb9c
xor edi, edi
test cx, cx
je 0xc6ca98
cmp word [ebp + eax - 0x80], di
je 0xc6ca98
inc edx
lea eax, [edx + edx]
movzx ecx, word [eax + 0xc76660]
cmp cx, word [ebp + eax - 0x80]
je 0xc6ca7a
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x8c], edx
cmp edi, edx
jae 0xc6cb9f
mov edx, esi
mov ecx, str.timestamp
call fcn.00c67de7
cmp edi, 0x11ea
jne 0xc6cb27
sub esi, 0x559a62c
mov dword [0xc78c10], esi
call fcn.00c672a8
call fcn.00c67f6c
mov esi, dword [0xc78c10]
xor eax, eax
mov edi, eax
mov ecx, esi
call fcn.00c670ac
and esi, 0x39bbe3f4
xor eax, eax
inc edi
cmp word [edi*2 + str.timestamp], ax
jne 0xc6cae0
cmp edi, 0xa5
jae 0xc6cb0f
and esi, 0xe39d5d39
call fcn.00c66c96
jmp 0xc6cb1f
mov ecx, str.imageName
imul esi, esi, 0xc92dda75
call fcn.00c67462
mov al, byte [str.bad_function_call]
mov byte [ebp - 0x10], al
mov edx, 0xc76660
mov ecx, str.timestamp
or esi, 0x641b1c62
call fcn.00c66dcd
xor eax, eax
mov edi, eax
cmp byte [ebp - 0x10], al
je 0xc6cb54
add esi, 0x7ddf52ec
inc edi
cmp byte [edi + str.bad_function_call], al
jne 0xc6cb45
call fcn.00c67f6c
cmp edi, 0xc59
jbe 0xc6cb6e
call fcn.00c6710f
add esi, 0xdbefe1c7
jmp 0xc6cb84
push str.timestamp
mov ecx, str.bad_function_call
call fcn.00c67921
pop ecx
add esi, 0xe6fd3f86
mov edi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, dword [ebp - 0x8c]
jb 0xc6caac
mov dword [ebp - 0x14], esi
jmp 0xc6cb9f
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
inc edi
mov cl, byte [ebp - 0x19]
mov dword [ebp - 0x44], edi
mov byte [ebp + eax - 0x290], cl
cmp edi, 0x100
jb 0xc6ca26
or esi, 0x12804eef
xor eax, eax
mov dword [ebp - 0x14], esi
mov edi, eax
mov dword [ebp - 0x18], eax
mov esi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp + esi - 0x290]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + esi - 0x290], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x290], cl
movzx eax, byte [ebp + esi - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + edi - 0x3c]
mov byte [ebp + edi - 0x2ac], al
inc edi
cmp edi, 0x18
jb 0xc6cbd1
mov esi, dword [ebp - 0x14]
xor eax, eax
mov byte [ebp - 0x294], al
cmp byte [ebp - 0x10], al
je 0xc6cc55
call fcn.00c6710f
mov eax, dword [ebp - 0x40]
or esi, 0x47bbb41f
inc eax
mov dword [ebp - 0x40], eax
cmp byte [eax], 0
jne 0xc6cc39
mov dword [ebp - 0x14], esi
xor eax, eax
push 0xd
pop ecx
mov byte [ebp - 0x52], cl
lea edi, [ebp - 0x3c]
push 5
pop ecx
mov esi, str.protocol_not_supported
mov dword [ebp - 0x60], 0x11bf8bf3
rep movsd dword es:[edi], dword [esi]
mov cl, byte [ebp - 0x10]
mov dword [ebp - 0x5c], 0x5867bc03
mov dword [ebp - 0x58], 0xe2ad1f4f
movsw word es:[edi], word [esi]
mov word [ebp - 0x54], 0x7df3
mov dword [ebp - 0x51], 0xdc599ae4
mov dword [ebp - 0x4d], 0xfc51e2ad
movsb byte es:[edi], byte [esi]
cmp cl, byte [ebp - 0x3c]
mov byte [ebp - 0x49], 0xc6
jmp 0xc6ccbe
test cl, cl
je 0xc6ccc3
cmp byte [ebp + eax - 0x3c], 0
je 0xc6ccc3
call fcn.00c66b7a
mov eax, dword [ebp - 0x18]
inc eax
mov cl, byte [eax + str.bad_function_call]
cmp cl, byte [ebp + eax - 0x3c]
mov dword [ebp - 0x18], eax
je 0xc6cca0
call fcn.00c66b7a
mov ecx, dword [ebp - 0x18]
movzx eax, byte [ebp + ecx - 0x3c]
movzx ecx, byte [ecx + str.bad_function_call]
sub ecx, eax
cmp ecx, 0x93
jae 0xc6ccea
or dword [ebp - 0x14], 0x9d4b5623
jmp 0xc6ccf1
add dword [ebp - 0x14], 0x5e0b74a7
mov esi, 0xc7008c
lea edi, [ebp - 0x70]
xor ecx, ecx
mov eax, ecx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6cd03
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x290]
mov eax, esi
mov byte [ebp - 0x19], cl
div dword [ebp - 0x64]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x70]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x290]
mov byte [ebp + esi - 0x290], al
inc esi
mov al, byte [ebp - 0x19]
mov byte [ebp + edi - 0x290], al
cmp esi, 0x100
jb 0xc6cd14
push 6
pop ecx
mov esi, 0xc6f108
lea edi, [ebp - 0x3c]
rep movsd dword es:[edi], dword [esi]
push 0x74
xor eax, eax
pop edx
movsw word es:[edi], word [esi]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], eax
cmp dx, word [ebp - 0x3c]
jne 0xc6cd9a
xor edi, edi
mov ecx, edi
test dx, dx
je 0xc6cd97
cmp word [ebp + ecx - 0x3c], di
je 0xc6cd97
inc eax
lea ecx, [eax + eax]
movzx edx, word [ecx + str.timestamp]
cmp dx, word [ebp + ecx - 0x3c]
je 0xc6cd79
mov dword [ebp - 0x40], eax
push str.timestamp
mov ecx, str.imageName
call fcn.00c67921
pop ecx
mov ecx, dword [ebp - 0x40]
movzx eax, byte [ebp + ecx*2 - 0x3c]
movzx ecx, byte [ecx*2 + str.timestamp]
sub ecx, eax
cmp ecx, 0x4ad
jne 0xc6cdd2
call fcn.00c671ed
add dword [ebp - 0x14], 0xb0df3151
jmp 0xc6cdd9
add dword [ebp - 0x14], 0xf231f610
xor eax, eax
mov esi, eax
mov edi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp + edi - 0x290]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + edi - 0x290], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x290], cl
movzx eax, byte [ebp + edi - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + esi - 0x60]
mov byte [ebp + esi - 0x2c8], al
inc esi
cmp esi, 0x18
jb 0xc6cddf
mov esi, 0xc71654
mov dword [ebp - 0x58], 0x5fadc820
lea edi, [ebp - 0x7c]
mov dword [ebp - 0x54], 0x6c8259fb
xor ecx, ecx
mov dword [ebp - 0x50], 0x9f19d96f
mov byte [ebp - 0x2b0], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov word [ebp - 0x4c], 0x11f1
mov byte [ebp - 0x4a], 0x2a
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x14]
sub edi, 0x199aa834
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6ce70
mov dword [ebp - 0x14], edi
mov esi, ecx
mov edi, ecx
mov dl, byte [ebp + esi - 0x290]
mov eax, esi
push 0xf
pop ecx
and eax, ecx
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x7c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x290]
mov byte [ebp + esi - 0x290], al
inc esi
mov byte [ebp + edi - 0x290], dl
cmp esi, 0x100
jb 0xc6ce8c
mov edi, dword [ebp - 0x14]
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov eax, ecx
mov esi, ecx
inc eax
sub edi, 0x770ad52e
movzx eax, al
mov dword [ebp - 0x20], eax
push 0xf
mov cl, byte [ebp + eax - 0x290]
mov eax, dword [ebp - 0x18]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x64], edx
mov edx, dword [ebp - 0x20]
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + edx - 0x290], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x290], cl
mov eax, edx
movzx eax, byte [ebp + eax - 0x290]
add eax, dword [ebp - 0x64]
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + esi - 0x58]
movzx eax, al
mov word [ebp + esi*2 - 0xb0], ax
inc esi
pop eax
cmp esi, eax
mov eax, edx
jb 0xc6ced3
mov ecx, dword [ebp - 0x178]
xor eax, eax
mov dword [0xc78c10], edi
mov word [ebp - 0x92], ax
call fcn.00c4d309
mov edx, dword [ebp - 0x180]
push eax
call fcn.00c4d13f
pop ecx
lea ecx, [ebp - 0x31c]
call fcn.00c4d05e
lea ecx, [ebp - 0x2ac]
mov edi, eax
call fcn.00c4d05e
push dword [ebp - 0x178]
mov esi, eax
lea edx, [ebp - 0x2c8]
push esi
push dword [ebp - 0x84]
lea eax, [ebp - 0xb0]
push dword [ebp - 0x170]
push edi
push eax
push dword [ebp - 0x16c]
push 2
pop ecx
call fcn.00c4ba1b
call eax
mov ecx, edi
call fcn.00c4d317
push eax
xor eax, eax
push eax
push edi
call fcn.00c4cf49
mov ecx, esi
call fcn.00c4d317
push eax
xor eax, eax
push eax
push esi
call fcn.00c4cf49
add esp, 0x34
mov ecx, edi
call fcn.00c4ba07
mov ecx, esi
call fcn.00c4ba07
mov edi, dword [ebp - 0x16c]
jmp 0xc6d426
push 0x63
pop eax
push 0xd
mov byte [ebp - 0x32], al
lea edi, [ebp - 0x60]
pop eax
push 5
pop ecx
mov esi, 0xc700e8
mov byte [ebp - 0x27], al
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x3c], 0x5c1ea89f
mov dword [ebp - 0x38], 0xa0513882
mov eax, edx
mov word [ebp - 0x34], 0x9bb9
movsb byte es:[edi], byte [esi]
mov esi, dword [0xc78c10]
xor esi, 0x9f81d145
mov dword [ebp - 0x31], 0x4ca40013
mov dword [ebp - 0x2d], 0x1e7c6fa7
mov word [ebp - 0x29], 0xb555
mov word [ebp - 0x26], 0xb799
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x40], edx
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6d051
mov edi, edx
xor edx, edx
mov cl, byte [ebp + edi - 0x290]
mov eax, edi
mov byte [ebp - 0x19], cl
div dword [ebp - 0x18]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x60]
add eax, dword [ebp - 0x40]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x40], ecx
mov al, byte [ebp + ecx - 0x290]
mov byte [ebp + edi - 0x290], al
inc edi
mov al, byte [ebp - 0x19]
mov byte [ebp + ecx - 0x290], al
cmp edi, 0x100
jb 0xc6d062
xor eax, eax
mov dword [ebp - 0x18], eax
mov esi, eax
mov edi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp + esi - 0x290]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + esi - 0x290], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x290], cl
movzx eax, byte [ebp + esi - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + edi - 0x3c]
mov byte [ebp + edi - 0x2c8], al
inc edi
cmp edi, 0x18
jb 0xc6d0b0
mov esi, dword [ebp - 0x14]
lea edi, [ebp - 0x184]
xor ecx, ecx
mov dword [ebp - 0x3c], 0xe0ba1b3e
add esi, 0x3875e90c
mov byte [ebp - 0x2b0], cl
mov dword [ebp - 0x14], esi
mov dword [0xc78c10], esi
mov esi, 0xc7188c
push 0x12
pop eax
mov byte [ebp - 0x2f], al
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x38], 0x804cf39
mov dword [ebp - 0x34], 0x75afbb1b
mov byte [ebp - 0x30], 0x2a
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2e], 0xc2ba0a2f
mov dword [ebp - 0x2a], 0x44c60555
mov word [ebp - 0x26], 0x4e68
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6d167
mov esi, ecx
mov dl, byte [ebp + esi - 0x290]
mov eax, esi
and eax, 7
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x184]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x290]
mov byte [ebp + esi - 0x290], al
inc esi
mov byte [ebp + edi - 0x290], dl
cmp esi, 0x100
jb 0xc6d178
mov esi, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], eax
mov edx, esi
mov ecx, 0xc76660
call fcn.00c67de7
xor eax, eax
mov edi, eax
cmp byte [str.bad_function_call], al
je 0xc6d1f5
call fcn.00c66c96
add esi, 0x87be773
inc edi
cmp byte [edi + str.bad_function_call], 0
jne 0xc6d1da
mov dword [0xc78c10], esi
call fcn.00c672a8
cmp edi, 0x25e2
jbe 0xc6d21d
mov edx, str.timestamp
mov ecx, 0xc76660
call fcn.00c66dcd
imul esi, dword [0xc78c10], 0x52b31c2d
jmp 0xc6d229
mov esi, dword [0xc78c10]
xor esi, 0x3b146daf
mov eax, dword [ebp - 0x40]
inc eax
mov dword [0xc78c10], esi
movzx edi, al
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], edi
mov cl, byte [ebp + edi - 0x290]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + edi - 0x290], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x290], cl
movzx eax, byte [ebp + edi - 0x290]
mov ecx, dword [ebp - 0x44]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + ecx - 0x3c]
mov byte [ebp + ecx - 0x2ac], al
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 0x18
jb 0xc6d1c2
xor eax, eax
mov dword [ebp - 0x14], esi
push 0xc
mov byte [ebp - 0x294], al
lea edi, [ebp - 0x38]
pop eax
push 5
pop ecx
mov esi, 0xc71f28
mov dword [ebp - 0x184], 0x5e21274a
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x180], al
mov byte [ebp - 0x17f], 7
movsw word es:[edi], word [esi]
call fcn.00c66c96
cmp byte [str.imageName], 0x6d
mov dword [ebp - 0x68], 0x7373656d
mov dword [ebp - 0x64], 0x656761
jne 0xc6d313
mov esi, dword [ebp - 0x14]
mov al, 0x6d
xor edi, edi
test al, al
je 0xc6d313
cmp byte [ebp + edi - 0x68], 0
je 0xc6d313
push 0xc76660
push esi
mov ecx, esi
call fcn.00c67779
mov al, byte [edi + 0xc78c85]
inc edi
pop ecx
pop ecx
cmp al, byte [ebp + edi - 0x68]
je 0xc6d2ec
xor ecx, ecx
mov edi, ecx
mov eax, ecx
mov byte [ebp + eax - 0x290], al
inc eax
cmp eax, 0x100
jb 0xc6d319
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x290]
mov eax, esi
mov byte [ebp - 0x19], cl
div dword [ebp - 0x6c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x38]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x290]
mov byte [ebp + esi - 0x290], al
inc esi
mov al, byte [ebp - 0x19]
mov byte [ebp + edi - 0x290], al
cmp esi, 0x100
jb 0xc6d32a
xor eax, eax
mov dword [ebp - 0x18], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp + edi - 0x290]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x290]
mov byte [ebp + edi - 0x290], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x290], cl
movzx eax, byte [ebp + edi - 0x290]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x290]
xor al, byte [ebp + esi - 0x184]
movzx eax, al
mov word [ebp + esi*2 - 0x58], ax
inc esi
cmp esi, 6
jb 0xc6d374
xor eax, eax
lea ecx, [ebp - 0x2c8]
mov word [ebp - 0x4c], ax
call fcn.00c4d05e
mov edi, dword [ebp - 0x16c]
lea edx, [ebp - 0x2ac]
mov esi, eax
lea eax, [ebp - 0x58]
push esi
push dword [ebp - 0x84]
push dword [ebp - 0x170]
push eax
push edi
push 2
pop ecx
call fcn.00c4ba1b
call eax
mov ecx, esi
call fcn.00c4d317
push eax
xor eax, eax
push eax
push esi
call fcn.00c4cf49
add esp, 0x20
mov ecx, esi
call fcn.00c4ba07
mov esi, dword [ebp - 0x170]
xor eax, eax
push 0x800
push eax
push esi
call fcn.00c4cf49
mov ecx, esi
call fcn.00c4ba07
mov esi, dword [ebp - 0x84]
mov edx, esi
mov ecx, dword [ebp - 0x88]
push edi
call fcn.00c56b86
mov ecx, dword [ebp - 0x88]
call fcn.00c4d317
push eax
xor eax, eax
push eax
push ecx
call fcn.00c4cf49
mov ecx, esi
call fcn.00c4d317
push eax
xor eax, eax
push eax
push esi
call fcn.00c4cf49
mov ecx, dword [ebp - 0x88]
call fcn.00c4ba07
mov ecx, esi
call fcn.00c4ba07
push dword [ebp - 0x18c]
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x48]
call fcn.00c589f2
add esp, 0x2c
mov esi, dword [ebp - 0x178]
xor eax, eax
push 0x208
push eax
push esi
call fcn.00c4cf49
push 0x800
xor eax, eax
push eax
push edi
call fcn.00c4cf49
push 0x500000
xor eax, eax
push eax
push dword [ebp - 0x48]
call fcn.00c4cf49
mov ecx, esi
call fcn.00c4ba07
mov ecx, edi
call fcn.00c4ba07
mov ecx, dword [ebp - 0x48]
call fcn.00c4ba07
mov esi, dword [ebp - 0x190]
mov ecx, esi
call fcn.00c4d309
push eax
xor eax, eax
push eax
push esi
call fcn.00c4cf49
add esp, 0x30
mov ecx, esi
call fcn.00c4ba07
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret