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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc0
mov eax, dword [0xc78a78]
push ebx
push esi
push edi
or eax, 0xb62de551
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x34], eax
lea edi, [ebp - 0x298]
push 6
pop eax
mov ecx, eax
mov dword [ebp - 0x1c], 0x8e524053
mov esi, 0xc704d0
mov dword [ebp - 0x18], 0xdd92ef04
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov dword [ebp - 0x14], 0x3854fe5
mov dword [ebp - 0x10], 0x63317042
mov eax, ecx
mov dword [ebp - 0xc], 0xb79d6aab
movsw word es:[edi], word [esi]
mov dword [ebp - 8], 0x4efda279
mov edi, ecx
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc654bf
push 0x19
mov esi, ecx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x214]
mov eax, esi
div ecx
movzx ecx, bl
push 0x19
movzx eax, byte [ebp + edx - 0x298]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + esi - 0x214], al
inc esi
mov byte [ebp + edi - 0x214], bl
cmp esi, 0x100
jb 0xc654d3
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x214]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x214]
mov byte [ebp + edi - 0x214], al
mov byte [ebp + ebx - 0x214], cl
movzx eax, byte [ebp + edi - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x388], al
inc esi
cmp esi, 0x18
jb 0xc6551b
push 6
pop eax
mov ecx, eax
mov dword [ebp - 0x1c], 0x9c734b47
mov esi, 0xc704d0
mov dword [ebp - 0x18], 0xbeb2ef56
lea edi, [ebp - 0x298]
mov dword [ebp - 0x14], 0x469038c2
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x10], 0x28556156
mov byte [ebp - 0x370], dl
mov eax, edx
mov dword [ebp - 0xc], 0xcebd47a7
movsw word es:[edi], word [esi]
mov dword [ebp - 8], 0x4efd947f
mov edi, edx
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc655b5
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x214]
push 0x19
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x298]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + esi - 0x214], al
inc esi
mov byte [ebp + edi - 0x214], bl
cmp esi, 0x100
jb 0xc655c6
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x214]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x214]
mov byte [ebp + edi - 0x214], al
mov byte [ebp + ebx - 0x214], cl
movzx eax, byte [ebp + edi - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x3a4], al
inc esi
cmp esi, 0x18
jb 0xc6560e
xor ecx, ecx
mov dword [ebp - 0x1c], 0x86e608d7
mov byte [ebp - 0x38c], cl
mov edi, ecx
mov dword [ebp - 0x18], 0xba3d39b9
mov eax, ecx
mov dword [ebp - 0x14], 0xf1b36848
mov dword [ebp - 0x10], 0x452dd759
mov dword [ebp - 0xc], 0xc0e06d9c
mov dword [ebp - 8], 0x994beaf
mov dword [ebp - 0xdc], 0x65707954
mov dword [ebp - 0xd8], 0x62694c
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc656a8
push 7
mov esi, ecx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x214]
mov eax, esi
div ecx
movzx ecx, bl
push 7
movzx eax, byte [ebp + edx - 0xdc]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + esi - 0x214], al
inc esi
mov byte [ebp + edi - 0x214], bl
cmp esi, 0x100
jb 0xc656bc
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x214]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x214]
mov byte [ebp + edi - 0x214], al
mov byte [ebp + ebx - 0x214], cl
movzx eax, byte [ebp + edi - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x2c4], al
inc esi
cmp esi, 0x18
jb 0xc65704
mov ecx, dword [ebp - 0x34]
lea edi, [ebp - 0x2a8]
mov esi, 0xc6f58c
mov dword [ebp - 0x1c], 0xf4d062cd
xor edx, edx
mov dword [ebp - 0x18], 0x3dc7f7b3
mov byte [ebp - 0x2ac], dl
or ecx, 0x346550b4
mov dword [ebp - 0x14], 0x900c13b1
mov eax, edx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0xf10cb162
mov dword [ebp - 0xc], 0x9dc2031d
mov dword [ebp - 8], 0xc62ec1f7
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, edx
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc657a4
mov esi, edx
sub ecx, 0x390ff26b
mov bl, byte [ebp + esi - 0x214]
mov dword [ebp - 0x34], ecx
xor edx, edx
mov dword [0xc78a78], ecx
mov eax, esi
push 0xe
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x2a8]
add eax, edi
add ecx, eax
movzx edi, cl
mov ecx, dword [ebp - 0x34]
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + esi - 0x214], al
inc esi
mov byte [ebp + edi - 0x214], bl
cmp esi, 0x100
jb 0xc657b5
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
mov edx, str.failureId
movzx edi, al
mov ecx, 0xc758e0
mov al, byte [ebp + edi - 0x214]
mov byte [ebp - 0x21], al
movzx eax, al
mov dword [ebp - 0x2c], eax
add eax, ebx
movzx ebx, al
call fcn.00c628d2
mov ecx, dword [0xc78a78]
mov eax, str.failureId
add ecx, 0xfe87bc58
inc eax
cmp byte [eax], 0
jne 0xc65844
mov al, byte [ebp + ebx - 0x214]
mov byte [ebp + edi - 0x214], al
mov al, byte [ebp - 0x21]
mov byte [ebp + ebx - 0x214], al
movzx eax, byte [ebp + edi - 0x214]
add eax, dword [ebp - 0x2c]
movzx eax, al
mov dword [0xc78a78], ecx
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x2e0], al
inc esi
cmp esi, 0x18
jb 0xc6580f
mov esi, 0xc70218
mov dword [ebp - 0x1c], 0xf84fdd78
lea edi, [ebp - 0x6c]
mov dword [ebp - 0x18], 0xd030e7ad
xor edx, edx
mov dword [ebp - 0x14], 0xba07f36e
push 0xe
movsd dword es:[edi], dword [esi]
xor ecx, 0xf44767ce
pop eax
mov byte [ebp - 0x10], al
mov byte [ebp - 9], al
mov eax, edx
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x2c8], dl
mov dword [ebp - 0xf], 0x1204d24e
mov word [ebp - 0xb], 0xad65
movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], 0xd23a70af
mov dword [0xc78a78], ecx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, edx
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc658f0
push 0x11
mov esi, edx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x214]
mov eax, esi
div ecx
movzx ecx, bl
push 0x11
movzx eax, byte [ebp + edx - 0x6c]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + esi - 0x214], al
inc esi
mov byte [ebp + edi - 0x214], bl
cmp esi, 0x100
jb 0xc65904
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x214]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x214]
mov byte [ebp + edi - 0x214], al
mov byte [ebp + ebx - 0x214], cl
movzx eax, byte [ebp + edi - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x2fc], al
inc esi
cmp esi, 0x18
jb 0xc65949
push 0x1d
pop ecx
mov esi, str.onecoreuap_baseAppModelSearchcommoninclude_atlext.hxx
lea edi, [ebp - 0x7bc]
rep movsd dword es:[edi], dword [esi]
xor edx, edx
push 0x65
pop ecx
mov ebx, edx
mov byte [ebp - 0x2e4], dl
mov dword [ebp - 0x30], edx
cmp cx, word [ebp - 0x7bc]
jne 0xc659f3
mov eax, edx
test cx, cx
je 0xc659f0
cmp word [ebp + eax - 0x7bc], dx
je 0xc659f0
call fcn.00c63334
inc ebx
push 0
pop edx
lea eax, [ebx + ebx]
movzx ecx, word [eax + 0xc758e0]
cmp cx, word [ebp + eax - 0x7bc]
je 0xc659c4
mov dword [ebp - 0x30], ebx
mov edx, str.inappropriate_io_control_operation
mov ecx, 0xc758e0
call fcn.00c628d2
mov esi, dword [ebp - 0xd8]
cmp esi, ebx
jae 0xc65a41
mov ebx, dword [0xc78a78]
mov edi, dword [ebp - 0x30]
cmp esi, 0x11c7
jne 0xc65a23
xor ebx, 0x63059438
xor ebx, 0x1fef313f
mov edx, 0xc758e0
push ebx
mov ecx, ebx
call fcn.00c6303f
inc esi
pop ecx
cmp esi, edi
jb 0xc65a15
mov dword [ebp - 0x20], ebx
jmp 0xc65a49
mov eax, dword [0xc78a78]
mov dword [ebp - 0x20], eax
mov esi, str.SrchPHFile
mov dword [ebp - 0x1c], 0xd04391e3
lea edi, [ebp - 0xe0]
mov dword [ebp - 0x18], 0xd29a75d8
push 0xa
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [ebp - 0xe], al
mov eax, ecx
mov dword [ebp - 0x14], 0x9695f0bc
mov word [ebp - 0x10], 0x5249
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xd], 0x803e9196
mov dword [ebp - 9], 0x273bc577
mov byte [ebp - 5], 0x82
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc65a92
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x214]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0xe0]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + esi - 0x214], al
mov eax, dword [ebp - 0x20]
or eax, 0x43a17399
mov byte [ebp + edi - 0x214], bl
inc esi
mov dword [ebp - 0x20], eax
cmp esi, 0x100
jb 0xc65aa3
xor ebx, ebx
lea esi, [eax + 0x2f998851]
mov edx, ebx
mov dword [ebp - 0x20], ebx
mov ecx, ebx
lea eax, [ecx + 1]
movzx eax, al
mov dword [ebp - 0x38], eax
mov al, byte [ebp + eax - 0x214]
mov byte [ebp - 0x21], al
movzx eax, al
mov dword [ebp - 0x40], eax
add eax, edx
movzx eax, al
mov dword [ebp - 0x2c], eax
call fcn.00c63ab3
or esi, 0x2037c2cf
inc ebx
mov edi, esi
mov dword [0xc78a78], edi
cmp byte [ebx + str.inappropriate_io_control_operation], 0
jne 0xc65b23
mov ecx, 0xc758e0
call fcn.00c629e3
mov eax, dword [ebp - 0x30]
jmp 0xc65b8c
cmp eax, 0x1e23
jne 0xc65b78
and esi, 0x517afeb2
mov ecx, str.inappropriate_io_control_operation
push 0xc758e0
push esi
mov dword [0xc78a78], esi
call fcn.00c6311d
mov edi, dword [0xc78a78]
mov eax, dword [ebp - 0x30]
pop ecx
pop ecx
mov esi, edi
xor esi, 0xdec37721
inc eax
mov edi, esi
mov dword [ebp - 0x30], eax
mov dword [0xc78a78], edi
cmp eax, ebx
jb 0xc65b4a
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x20]
push 0
mov al, byte [ebp + edx - 0x214]
mov byte [ebp + ecx - 0x214], al
mov al, byte [ebp - 0x21]
mov byte [ebp + edx - 0x214], al
movzx eax, byte [ebp + ecx - 0x214]
add eax, dword [ebp - 0x40]
movzx eax, al
pop ebx
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + edi - 0x1c]
mov byte [ebp + edi - 0x318], al
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x18
jb 0xc65afd
push ebx
lea eax, [ebp - 0x220]
mov byte [ebp - 0x300], bl
push eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x30], ebx
push eax
xor ecx, ecx
mov dword [ebp - 0xfc], ebx
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x220], 0xc
inc ecx
mov dword [ebp - 0x21c], ebx
push eax
lea edx, [ebp - 0x388]
mov dword [ebp - 0x218], ecx
call fcn.00c4ba1b
call eax
test eax, eax
jne 0xc65c31
xor eax, eax
jmp 0xc66b75
xor eax, eax
mov dword [ebp - 0x27c], 0x44
mov dword [ebp - 0x24c], eax
lea edx, [ebp - 0x3a4]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov dword [ebp - 0x240], eax
inc ecx
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x27c]
mov dword [ebp - 0x278], ebx
push eax
push ebx
push ebx
push 0x10
push 1
push ebx
push ebx
push dword [ebp - 0x28]
mov dword [ebp - 0x274], ebx
push ebx
mov dword [ebp - 0x270], ebx
mov dword [ebp - 0x26c], ebx
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x264], ebx
mov dword [ebp - 0x260], ebx
mov dword [ebp - 0x25c], ebx
mov dword [ebp - 0x258], ebx
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x250], 0x101
mov dword [ebp - 0x248], ebx
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0x100], ebx
call fcn.00c4ba1b
call eax
test eax, eax
jne 0xc66046
mov esi, 0xc6f4ec
mov dword [ebp - 0x1c], 0x84a4c7e4
lea edi, [ebp - 0xe0]
mov dword [ebp - 0x18], 0x6f8f1ffd
push 0xe
pop eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0xcc907ed6
mov dword [ebp - 0x10], 0x104cfef6
mov byte [ebp - 0xc], 0x5e
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xb], al
mov dword [ebp - 0xa], 0xff48981
mov word [ebp - 6], 0x5236
movsd dword es:[edi], dword [esi]
call fcn.00c63ab3
mov esi, dword [0xc78a78]
xor ecx, ecx
add esi, 0x6f9102f1
inc ebx
cmp word [ebx*2 + 0xc758e0], cx
jne 0xc65d3c
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0x20], esi
cmp edi, ebx
jae 0xc65d90
cmp edi, 0x1fb1
jne 0xc65d68
and esi, 0x3a71f3b5
or esi, 0x93d94228
mov ecx, str.failureId
mov edx, esi
mov dword [0xc78a78], esi
call fcn.00c635ec
mov esi, dword [0xc78a78]
inc edi
cmp edi, ebx
jb 0xc65d5a
mov dword [ebp - 0x20], esi
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov eax, ecx
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc65d95
mov esi, dword [ebp - 0x2c]
mov edi, ecx
push 0xb
pop ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x214]
mov eax, edi
div ecx
movzx ecx, bl
push 0xb
movzx eax, byte [ebp + edx - 0xe0]
add eax, esi
add ecx, eax
movzx esi, cl
pop ecx
mov al, byte [ebp + esi - 0x214]
mov byte [ebp + edi - 0x214], al
inc edi
mov byte [ebp + esi - 0x214], bl
cmp edi, 0x100
jb 0xc65dac
xor esi, esi
mov edi, esi
mov esi, dword [ebp - 0x20]
call fcn.00c6390b
or esi, 0x1361d139
inc edi
cmp byte [edi + str.failureId], 0
jne 0xc65df3
cmp edi, 0x2c9
jbe 0xc65e1d
call fcn.00c62f6a
or esi, 0xb3aaa54c
jmp 0xc65e23
and esi, 0xcd92990
xor eax, eax
mov dword [ebp - 0x20], eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
add esi, 0xb68c8e3d
movzx ebx, al
mov eax, dword [ebp - 0x20]
mov dword [0xc78a78], esi
mov cl, byte [ebp + ebx - 0x214]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x214]
mov byte [ebp + ebx - 0x214], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x214], cl
movzx eax, byte [ebp + ebx - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + edi - 0x1c]
mov byte [ebp + edi - 0xd4], al
inc edi
cmp edi, 0x18
jb 0xc65e2c
mov dword [ebp - 0x20], esi
lea edi, [ebp - 0x230]
mov esi, 0xc6f32c
mov dword [ebp - 0x1c], 0xc268b7e6
push 6
pop eax
mov ecx, eax
mov dword [ebp - 0x18], 0xb4a860f1
movsd dword es:[edi], dword [esi]
xor ebx, ebx
push 0x65
mov byte [ebp - 0xbc], bl
mov edx, ebx
mov dword [ebp - 0x14], 0x63fac480
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0x2faa2252
mov dword [ebp - 0xc], 0x903684d9
mov dword [ebp - 8], 0x68954e6f
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, 0xc6feb0
lea edi, [ebp - 0x58]
rep movsd dword es:[edi], dword [esi]
pop ecx
cmp cx, word [ebp - 0x58]
jne 0xc65f0f
mov eax, ebx
test cx, cx
je 0xc65f0f
cmp word [ebp + eax - 0x58], bx
je 0xc65f0f
inc edx
lea eax, [edx + edx]
movzx ecx, word [eax + 0xc758e0]
cmp cx, word [ebp + eax - 0x58]
je 0xc65ef1
movzx eax, byte [ebp + edx*2 - 0x58]
mov ecx, str.failureId
movzx esi, byte [edx*2 + 0xc758e0]
mov edx, dword [ebp - 0x20]
sub esi, eax
call fcn.00c635ec
cmp esi, 0x1fb5
jbe 0xc65f54
mov ecx, dword [0xc78a78]
add ecx, 0x58919887
push 0xc758e0
mov edx, ecx
mov dword [0xc78a78], ecx
call fcn.00c63772
pop ecx
jmp 0xc65f63
imul eax, dword [0xc78a78], 0xfddc5749
mov dword [0xc78a78], eax
mov edi, ebx
mov eax, ebx
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc65f67
push 0xd
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x214]
mov eax, esi
div ecx
movzx ecx, bl
push 0xd
movzx eax, byte [ebp + edx - 0x230]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + esi - 0x214], al
inc esi
mov byte [ebp + edi - 0x214], bl
cmp esi, 0x100
jb 0xc65f7b
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x214]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x214]
mov byte [ebp + edi - 0x214], al
mov byte [ebp + ebx - 0x214], cl
movzx eax, byte [ebp + edi - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0xb8], al
inc esi
cmp esi, 0x18
jb 0xc65fc3
push dword [ebp - 0x34]
xor ecx, ecx
lea edx, [ebp - 0xd4]
xor eax, eax
inc ecx
mov byte [ebp - 0xa0], al
call fcn.00c4ba1b
call eax
push dword [ebp - 0x3c]
xor ecx, ecx
lea edx, [ebp - 0xb8]
inc ecx
call fcn.00c4ba1b
call eax
jmp 0xc65c2a
push 0xd
mov dword [ebp - 0x2c], 0xb
pop ecx
mov esi, str.MaxGrowFactor
mov dword [ebp - 0x9c], 0x3148b9a
lea edi, [ebp - 0x2a8]
mov dword [ebp - 0x98], 0x6771abed
push 0x19
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x8b], al
mov eax, ebx
mov dword [ebp - 0x94], 0xccb545a9
mov dword [ebp - 0x90], 0x558b055a
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x8c], 1
mov dword [ebp - 0x8a], 0xcfcd8faa
mov dword [ebp - 0x86], 0xb5c8c4a3
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x82], 0x40d46b1e
mov dword [ebp - 0x7e], 0x5e4aaba8
mov dword [ebp - 0x7a], 0x1491c847
movsw word es:[edi], word [esi]
mov dword [ebp - 0x76], 0xe2ead896
mov edi, ebx
mov word [ebp - 0x72], 0xcaf6
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc660d5
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x214]
mov eax, esi
div ecx
movzx ecx, bl
push 0xd
movzx eax, byte [ebp + edx - 0x2a8]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + esi - 0x214], al
inc esi
mov byte [ebp + edi - 0x214], bl
cmp esi, 0x100
jb 0xc660e6
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x214]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x214]
mov byte [ebp + edi - 0x214], al
mov byte [ebp + ebx - 0x214], cl
movzx eax, byte [ebp + edi - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0x9c]
mov byte [ebp + esi - 0x50c], al
inc esi
cmp esi, 0x2c
jb 0xc6612e
push 0x32
push dword [ebp - 0x10c]
xor ecx, ecx
lea edx, [ebp - 0x50c]
xor eax, eax
inc ecx
mov byte [ebp - 0x4e0], al
call fcn.00c4ba1b
call eax
mov edx, dword [0xc78a78]
neg eax
mov edi, str.inappropriate_io_control_operation
sbb eax, eax
mov ecx, edi
inc eax
mov dword [ebp - 0xd8], eax
call fcn.00c635ec
mov esi, edi
mov edx, edi
mov ecx, 0xc758e0
call fcn.00c628d2
imul ebx, dword [0xc78a78], 0x1ca6157f
inc esi
cmp byte [esi], 0
mov dword [0xc78a78], ebx
jne 0xc661c0
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov esi, str.interrupted
mov dword [ebp - 0x1c], 0x169313e1
lea edi, [ebp - 0x230]
mov dword [ebp - 0x18], 0x321ce2eb
mov dword [ebp - 0x14], 0x9b4d0f56
mov eax, ecx
mov dword [ebp - 0x10], 0xe023679e
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0xcd01c256
mov dword [ebp - 8], 0xae29fe77
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, ecx
mov byte [ebp + eax - 0x214], al
inc eax
cmp eax, 0x100
jb 0xc66223
mov esi, ecx
mov dword [ebp - 0x28], ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x214]
mov eax, esi
mov byte [ebp - 0x21], cl
div dword [ebp - 0x2c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x230]
add eax, edi
add ecx, eax
movzx eax, cl
mov dword [ebp - 0x38], eax
mov al, byte [ebp + eax - 0x214]
mov byte [ebp + esi - 0x214], al
call fcn.00c62f6a
push 8
pop ecx
mov esi, 0xc70030
lea edi, [ebp - 0x94]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
push 0x65
mov edx, eax
mov dword [ebp - 0x20], eax
pop eax
movsw word es:[edi], word [esi]
cmp ax, word [ebp - 0x94]
jne 0xc662c2
mov ecx, eax
xor eax, eax
xor esi, esi
test cx, cx
je 0xc662bf
cmp word [ebp + eax - 0x94], si
je 0xc662bf
inc edx
lea eax, [edx + edx]
movzx ecx, word [eax + 0xc758e0]
cmp cx, word [ebp + eax - 0x94]
je 0xc6629b
mov dword [ebp - 0x20], edx
push ebx
mov edx, 0xc758e0
mov ecx, ebx
call fcn.00c6303f
pop ecx
mov ecx, dword [ebp - 0x20]
movzx eax, byte [ebp + ecx*2 - 0x94]
movzx ecx, byte [ecx*2 + 0xc758e0]
sub ecx, eax
cmp ecx, 0x787
jbe 0xc662f5
and ebx, 0x81ba9f
jmp 0xc662fb
and ebx, 0xb396bf82
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x38]
inc esi
mov al, byte [ebp - 0x21]
mov dword [ebp - 0x28], esi
mov byte [ebp + edi - 0x214], al
cmp esi, 0x100
jb 0xc66237
xor eax, eax
mov edi, eax
call fcn.00c63ab3
add ebx, 0x356878af
inc edi
cmp byte [edi + str.inappropriate_io_control_operation], 0
jne 0xc6631f
push 0xc758e0
push ebx
mov ecx, str.failureId
mov dword [0xc78a78], ebx
call fcn.00c6311d
mov ebx, dword [ebp - 0x110]
mov esi, dword [0xc78a78]
pop ecx
pop ecx
cmp ebx, edi
jae 0xc663a8
push 0xc758e0
push esi
mov ecx, str.inappropriate_io_control_operation
call fcn.00c6311d
mov esi, dword [0xc78a78]
pop ecx
pop ecx
cmp ebx, 0x214e
jne 0xc66382
sub esi, 0x5afda886
xor esi, 0x710256b7
push 0xc758e0
mov edx, esi
mov dword [0xc78a78], esi
mov ecx, esi
call fcn.00c63772
inc ebx
pop ecx
cmp ebx, edi
jb 0xc6635c
mov dword [ebp - 0x110], ebx
xor eax, eax
mov dword [ebp - 0x28], esi
mov esi, eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x214]
movzx edx, cl
lea eax, [edx + edi]
movzx edi, al
mov al, byte [ebp + edi - 0x214]
mov byte [ebp + ebx - 0x214], al
mov byte [ebp + edi - 0x214], cl
movzx eax, byte [ebp + ebx - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x3c0], al
inc esi
cmp esi, 0x18
jb 0xc663b3
push 0xe
pop eax
mov ecx, eax
mov dword [ebp - 0x70], 0xaab67532
xor edx, edx
mov dword [ebp - 0x6c], 0x67f2ba96
mov esi, 0xc71f64
mov byte [ebp - 0x3a8], dl
lea edi, [ebp - 0x744]
mov dword [ebp - 0x68], 0x82a3a011
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x64], 0xa98d20fe
mov edi, edx
mov dword [ebp - 0x60], 0xc8b195ba
mov eax, edx
mov dword [ebp - 0x5c], 0x41bedb08
mov byte [ebp + eax - 0x4dc], al
inc eax
cmp eax, 0x100
jb 0xc6644b
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x4dc]
push 0x37
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x744]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x4dc]
mov byte [ebp + esi - 0x4dc], al
inc esi
mov byte [ebp + edi - 0x4dc], bl
cmp esi, 0x100
jb 0xc6645c
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x4dc]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x4dc]
mov byte [ebp + edi - 0x4dc], al
mov byte [ebp + ebx - 0x4dc], cl
movzx eax, byte [ebp + edi - 0x4dc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x4dc]
xor al, byte [ebp + esi - 0x70]
mov byte [ebp + esi - 0x3dc], al
inc esi
cmp esi, 0x18
jb 0xc664a4
mov esi, dword [ebp - 0x30]
xor ecx, ecx
mov ebx, dword [ebp - 0x28]
xor ebx, 0x5de452fa
mov byte [ebp - 0x3c4], cl
mov dword [0xc78a78], ebx
lea eax, [esi + 0x400]
cmp eax, 0xc800
ja 0xc66629
push 0x400
xor ebx, ebx
lea eax, [ebp - 0xbbc]
push ebx
push eax
call fcn.00c4cf49
add esp, 0xc
lea eax, [ebp - 0x40]
xor ecx, ecx
lea edx, [ebp - 0x3c0]
inc ecx
push ebx
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x3c]
call fcn.00c4ba1b
call eax
test eax, eax
je 0xc665c2
mov eax, dword [ebp - 0x40]
test eax, eax
je 0xc665c2
push ebx
lea ecx, [ebp - 0xfc]
push ecx
mov ecx, 0x3ff
lea edx, [ebp - 0x3dc]
cmp eax, ecx
cmova eax, ecx
xor ecx, ecx
push eax
lea eax, [ebp - 0xbbc]
inc ecx
push eax
push dword [ebp - 0x3c]
call fcn.00c4ba1b
call eax
test eax, eax
je 0xc665c2
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0xc665c2
cmp dword [ebp + 8], ebx
je 0xc665b0
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0xbbc]
call fcn.00c4d3a6
mov eax, dword [ebp - 0xfc]
mov ebx, dword [0xc78a78]
add esi, eax
mov dword [ebp - 0x30], esi
xor ecx, ecx
jmp 0xc661e7
push 0xd
pop ecx
cmp dword [ebp - 0xd8], ebx
je 0xc66050
push dword [ebp - 0x34]
xor ebx, ebx
lea edx, [ebp - 0x2c4]
inc ebx
mov ecx, ebx
call fcn.00c4ba1b
call eax
push dword [ebp - 0x3c]
lea edx, [ebp - 0x2e0]
mov ecx, ebx
call fcn.00c4ba1b
call eax
push dword [ebp - 0x10c]
lea edx, [ebp - 0x2fc]
mov ecx, ebx
call fcn.00c4ba1b
call eax
push dword [ebp - 0x108]
lea edx, [ebp - 0x318]
mov ecx, ebx
call fcn.00c4ba1b
call eax
mov eax, esi
jmp 0xc66b75
mov esi, 0xc75828
mov dword [ebp - 0xf8], 0xd2dd2bb8
lea edi, [ebp - 0x6c]
mov word [ebp - 0xf4], 0xf3a3
push 0x19
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xf1], al
mov eax, ecx
mov byte [ebp - 0xf2], 0x96
mov dword [ebp - 0xf0], 0x5b926d58
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xec], 0x4e856690
mov dword [ebp - 0xe8], 0xfa6f627e
mov dword [ebp - 0xe4], 0xa3d96f89
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x4dc], al
inc eax
cmp eax, 0x100
jb 0xc66685
mov esi, ecx
mov dl, byte [ebp + esi - 0x4dc]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x6c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x4dc]
mov byte [ebp + esi - 0x4dc], al
inc esi
mov byte [ebp + edi - 0x4dc], dl
cmp esi, 0x100
jb 0xc66696
xor eax, eax
mov dword [ebp - 0x20], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
add ebx, 0xa1e940ca
movzx edi, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + edi - 0x4dc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x4dc]
mov byte [ebp + edi - 0x4dc], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x4dc], cl
movzx eax, byte [ebp + edi - 0x4dc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x4dc]
xor al, byte [ebp + esi - 0xf8]
mov byte [ebp + esi - 0x334], al
inc esi
cmp esi, 0x18
jb 0xc666d8
push 5
pop ecx
mov esi, 0xc701ec
mov dword [ebp - 0xb8], 0x27d94eb8
lea edi, [ebp - 0x1c]
mov dword [ebp - 0xb4], 0xd3b84c8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, edx
mov byte [ebp - 0x31c], dl
mov dword [ebp - 0xb0], 0xa039cc22
mov dword [ebp - 0xac], 0x8759994f
mov dword [ebp - 0xa8], 0xadcec0db
mov dword [ebp - 0xa4], 0x3bb140ee
movsw word es:[edi], word [esi]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x38], eax
mov edi, edx
and ebx, 0x1d5af72b
inc edi
mov esi, ebx
mov dword [ebp - 0x28], esi
cmp word [edi*2 + 0xc758e0], dx
jne 0xc66799
cmp ecx, edi
jae 0xc66808
mov dword [ebp - 0x28], ebx
mov edx, esi
mov ecx, str.failureId
call fcn.00c6322c
cmp dword [ebp - 0x20], 0x7b6
jne 0xc667d9
call fcn.00c63334
mov ebx, dword [ebp - 0x28]
add ebx, 0xcc243ff7
add ebx, 0x44820e9
mov edx, 0xc758e0
mov esi, ebx
push esi
mov ecx, esi
call fcn.00c6303f
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x20], eax
pop ecx
cmp eax, edi
jb 0xc667b6
mov eax, dword [ebp - 0x38]
xor edx, edx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], esi
mov byte [ebp + eax - 0x214], al
mov edi, 0x100
inc eax
mov dword [ebp - 0x38], eax
cmp eax, edi
jb 0xc66797
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x214]
push 0x15
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x1c]
add eax, dword [ebp - 0x2c]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x2c], ecx
mov al, byte [ebp + ecx - 0x214]
mov byte [ebp + esi - 0x214], al
inc esi
mov byte [ebp + ecx - 0x214], bl
cmp esi, edi
jb 0xc66822
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x214]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x214]
mov byte [ebp + edi - 0x214], al
mov byte [ebp + ebx - 0x214], cl
movzx eax, byte [ebp + edi - 0x214]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x214]
xor al, byte [ebp + esi - 0xb8]
mov byte [ebp + esi - 0x350], al
inc esi
cmp esi, 0x18
jb 0xc66867
push 0x37
pop eax
mov byte [ebp - 0xd4], al
lea edi, [ebp - 0x8c]
push 6
pop eax
mov ecx, eax
mov dword [ebp - 0xd3], 0x6089784f
mov esi, 0xc704d0
mov dword [ebp - 0xcf], 0xeed8baf1
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0xcb], 0x7641996f
mov byte [ebp - 0x338], dl
mov eax, edx
mov dword [ebp - 0xc7], 0x8e413041
movsw word es:[edi], word [esi]
mov dword [ebp - 0xc3], 0x68b2ad62
mov edi, edx
mov word [ebp - 0xbf], 0xfd84
mov byte [ebp - 0xbd], 0x4e
mov byte [ebp + eax - 0x60c], al
inc eax
cmp eax, 0x100
jb 0xc66925
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x60c]
push 0x19
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x8c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x60c]
mov byte [ebp + esi - 0x60c], al
inc esi
mov byte [ebp + edi - 0x60c], bl
cmp esi, 0x100
jb 0xc66936
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x60c]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x60c]
mov byte [ebp + edi - 0x60c], al
mov byte [ebp + ebx - 0x60c], cl
movzx eax, byte [ebp + edi - 0x60c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x60c]
xor al, byte [ebp + esi - 0xd4]
mov byte [ebp + esi - 0x36c], al
inc esi
cmp esi, 0x18
jb 0xc6697e
mov esi, str.Errors
mov dword [ebp - 0x58], 0xeac01258
lea edi, [ebp - 0xdc]
mov dword [ebp - 0x54], 0x924533de
xor eax, eax
mov dword [ebp - 0x50], 0xbbe19b46
mov byte [ebp - 0x354], al
mov ecx, 0xc758e0
movsd dword es:[edi], dword [esi]
push 0x37
pop eax
mov dword [ebp - 0x4c], 0x905366eb
movsw word es:[edi], word [esi]
mov dword [ebp - 0x48], 0x183f11df
mov word [ebp - 0x44], 0x8612
mov byte [ebp - 0x42], al
mov byte [ebp - 0x41], 0x7a
movsb byte es:[edi], byte [esi]
call fcn.00c629e3
mov ebx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, ecx
or ebx, 0xe162ef8c
inc eax
cmp byte [eax + str.failureId], cl
jne 0xc66a2c
cmp eax, 0x157a
jne 0xc66a4a
or ebx, 0xaae6bf10
jmp 0xc66a57
call fcn.00c62bfd
xor ebx, 0x9fe90ddc
xor ecx, ecx
mov edi, ecx
mov eax, ecx
mov byte [ebp + eax - 0x70c], al
inc eax
cmp eax, 0x100
jb 0xc66a5b
imul eax, ebx, 0x2835d0ff
mov esi, ecx
mov dword [0xc78a78], eax
xor edx, edx
mov bl, byte [ebp + esi - 0x70c]
push 6
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0xdc]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x70c]
mov byte [ebp + esi - 0x70c], al
inc esi
mov byte [ebp + edi - 0x70c], bl
cmp esi, 0x100
jb 0xc66a77
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x70c]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x70c]
mov byte [ebp + edi - 0x70c], al
mov byte [ebp + ebx - 0x70c], cl
movzx eax, byte [ebp + edi - 0x70c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x70c]
xor al, byte [ebp + esi - 0x58]
mov byte [ebp + esi - 0x298], al
inc esi
cmp esi, 0x18
jb 0xc66abf
push dword [ebp - 0x34]
xor ebx, ebx
lea edx, [ebp - 0x334]
xor eax, eax
inc ebx
mov ecx, ebx
mov byte [ebp - 0x280], al
call fcn.00c4ba1b
call eax
push dword [ebp - 0x3c]
lea edx, [ebp - 0x350]
mov ecx, ebx
call fcn.00c4ba1b
call eax
push dword [ebp - 0x10c]
lea edx, [ebp - 0x36c]
mov ecx, ebx
call fcn.00c4ba1b
call eax
push dword [ebp - 0x108]
lea edx, [ebp - 0x298]
mov ecx, ebx
call fcn.00c4ba1b
call eax
sub dword [0xc78a78], 0x1abf0f1
mov eax, dword [ebp - 0x30]
pop edi
pop esi
pop ebx
leave
ret