Function at 0x1001bfc3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
mov eax, dword [0x1002b5d8]
push esi
push edi
push 0x36
mov dword [ebp - 0x3c], edx
or eax, 0x340c1558
mov dword [ebp - 0x38], ecx
xor edx, edx
pop ecx
mov edi, ecx
mov dword [ebp - 0x10], 0x5e
mov dword [ebp - 0xc], 0xffffff6d
mov esi, edx
add edi, dword [ebp + esi*4 - 0x10]
inc esi
cmp esi, 2
jl 0x1001bff5
push 0x10
mov dword [ebp - 0xc], edi
mov ecx, edx
pop esi
mov dword [ebp - 0x24], 0x4d
mov dword [ebp - 0x20], 0x58
mov dword [ebp - 0x1c], 0xffffff4d
add esi, dword [ebp + ecx*4 - 0x24]
inc ecx
cmp ecx, 3
jl 0x1001c01c
xor eax, 0x1148c05d
mov dword [ebp - 0x18], 9
push 0x2e
mov dword [ebp - 0x14], 0xffffffcc
mov ecx, edx
add eax, 0x53df0db1
pop edi
add edi, dword [ebp + ecx*4 - 0x18]
add eax, 0xd428901a
inc ecx
cmp ecx, 2
jl 0x1001c043
mov ecx, dword [ebp - 0x38]
mov dword [0x1002b5d8], eax
mov dword [ebp - 0x14], edi
cmp ecx, dword [ebp - 0xc]
jne 0x1001c211
movzx ecx, byte [str.rsa_verify_recover]
lea edi, [ebp - 0x34]
mov dword [ebp - 0x14], edx
mov esi, str.cc_cmd_decline
mov dword [ebp - 0x24], 0x30848e95
mov dword [ebp - 0x20], 0x72803764
mov dword [ebp - 0x1c], 0x3cea9cab
movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], ecx
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 esi, str.rsa_verify_recover
mov edi, 0x1af4
mov edx, esi
test ecx, ecx
je 0x1001c0ce
add edi, dword [ebp - 0xc]
inc esi
mov edx, str.rsa_verify_recover
cmp edi, 0x520
ja 0x1001c0c9
movzx ecx, byte [esi]
mov dword [ebp - 0xc], ecx
test ecx, ecx
mov ecx, dword [ebp - 8]
jne 0x1001c0a9
jmp 0x1001c0ce
add eax, 0x31ed1786
imul eax, eax, 0x1f2c084
mov esi, 0x34d17d2c
sub esi, eax
mov eax, 0x17c6
jmp 0x1001c0ef
add eax, ecx
inc edx
cmp eax, 0x24cf
ja 0x1001c0f5
movzx ecx, byte [edx]
test ecx, ecx
jne 0x1001c0e2
jmp 0x1001c100
call fcn.1001b1fe
add esi, 0x398e7ed6
imul esi, esi, 0xf4886f5e
push ecx
push ecx
mov dword [0x1002b5d8], esi
call fcn.1001b2fd
pop ecx
pop ecx
xor ecx, ecx
mov eax, ecx
cmp byte [str.rsa_verify_recover], al
je 0x1001c139
inc eax
cmp eax, 0x2157
jg 0x1001c133
cmp byte [eax + str.rsa_verify_recover], cl
jne 0x1001c121
jmp 0x1001c139
and esi, 0x33548d4c
xor esi, 0x4871ce21
mov edi, 0x100
imul eax, esi, 0x212f4367
mov dword [0x1002b5d8], eax
mov eax, ecx
mov byte [ebp + eax - 0x13c], al
inc eax
cmp eax, edi
jb 0x1001c151
mov esi, ecx
xor edx, edx
mov dword [ebp - 0xc], 0xe
mov eax, esi
mov cl, byte [ebp + esi - 0x13c]
div dword [ebp - 0xc]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x34]
add eax, dword [ebp - 0x14]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x14], ecx
mov al, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x13c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x13c], al
cmp esi, edi
jb 0x1001c15f
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x13c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x13c], cl
movzx eax, byte [ebp + edi - 0x13c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x13c]
xor al, byte [ebp + esi - 0x24]
mov byte [ebp + esi - 0x34], al
inc esi
cmp esi, 0xc
jb 0x1001c1b0
mov byte [ebp - 0x28], 0
lea edx, [ebp - 0x34]
jmp 0x1001c5f3
cmp ecx, esi
jne 0x1001c3bc
push 9
pop ecx
mov esi, str.FileKey22_LocalAppData_MigWiz.xml
mov dword [ebp - 0x30], 0xe47dca20
lea edi, [ebp - 0x164]
mov dword [ebp - 0x2c], 0x68b44bb5
rep movsd dword es:[edi], dword [esi]
mov word [ebp - 0x28], 0xc2f7
mov ecx, edx
mov dword [ebp - 0xc], edx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, 0x100
add eax, 0x84622265
mov byte [ebp + ecx - 0x13c], cl
inc ecx
cmp ecx, edi
jb 0x1001c24a
xor eax, 0x4398ff33
mov esi, edx
mov dword [ebp - 0x14], eax
xor edx, edx
mov dword [ebp - 8], 0x26
mov eax, esi
mov cl, byte [ebp + esi - 0x13c]
div dword [ebp - 8]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x164]
add eax, dword [ebp - 0xc]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0xc], ecx
mov al, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x13c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x13c], al
cmp esi, edi
jb 0x1001c265
mov esi, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 8], eax
mov ecx, eax
mov edi, eax
lea eax, [ecx + 1]
add esi, 0x17970ee9
movzx eax, al
mov dword [ebp - 0x14], eax
mov cl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 8]
movzx edx, cl
add eax, edx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x14]
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x13c], cl
mov eax, edx
movzx eax, byte [ebp + eax - 0x13c]
add eax, dword [ebp - 0xc]
movzx eax, al
mov al, byte [ebp + eax - 0x13c]
mov byte [ebp - 1], al
xor eax, eax
cmp byte [str.rsa_verify_recover], al
je 0x1001c33b
inc eax
cmp eax, 0x1756
jl 0x1001c335
cmp byte [eax + str.rsa_verify_recover], 0
jne 0x1001c322
jmp 0x1001c33b
xor esi, 0x39f05da9
add esi, 0xa36b39d2
push ecx
and esi, 0x9fed2c98
push ecx
mov dword [0x1002b5d8], esi
call fcn.1001b7b5
pop ecx
pop ecx
push 0x53
mov ecx, 0x1a67
mov eax, str.SmartSanDisk
pop edx
add ecx, edx
lea eax, [eax + 2]
cmp ecx, 0x164f
ja 0x1001c379
movzx edx, word [eax]
test edx, edx
jne 0x1001c363
jmp 0x1001c37f
and esi, 0xeacb14
and esi, 0x908aa0b4
imul esi, esi, 0x6fee9f23
push ecx
mov dword [0x1002b5d8], esi
call fcn.1001b827
mov al, byte [ebp + edi - 0x30]
xor al, byte [ebp - 1]
mov byte [ebp + edi - 0x24], al
inc edi
pop ecx
mov ecx, dword [ebp - 0x14]
cmp edi, 0xa
jb 0x1001c2bc
mov byte [ebp - 0x1a], 0
lea edx, [ebp - 0x24]
jmp 0x1001c5f3
cmp ecx, dword [ebp - 0x14]
jne 0x1001c62c
push 0xd
pop ecx
mov esi, str.event_visualstatechange___.infoIgnoreProgramContainer_
mov dword [ebp - 0x30], 0x1b1fef9f
lea edi, [ebp - 0x174]
mov dword [ebp - 0x2c], 0x83397f1
rep movsd dword es:[edi], dword [esi]
or eax, 0xd7d2a7c9
mov byte [ebp - 0x28], 0x58
xor eax, 0x785e1bb
mov dword [ebp - 8], edx
mov dword [ebp - 0x14], eax
mov eax, edx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, 0x100
mov byte [ebp + eax - 0x13c], al
inc eax
cmp eax, edi
jb 0x1001c401
mov esi, dword [ebp - 0x14]
mov ecx, edx
mov dword [ebp - 0xc], ecx
mov al, byte [ebp + ecx - 0x13c]
xor edx, edx
mov byte [ebp - 1], al
mov eax, ecx
push 0x36
pop ecx
div ecx
movzx ecx, byte [ebp - 1]
push 0x53
movzx eax, byte [ebp + edx - 0x174]
add eax, dword [ebp - 8]
add ecx, eax
movzx eax, cl
mov ecx, str.SmartSanDisk
mov dword [ebp - 8], eax
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x1001c461
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x1001c447
jmp 0x1001c467
sub esi, 0x22a8540a
xor edx, edx
imul esi, esi, 0x9693ed57
mov eax, edx
cmp byte [str.rsa_verify_recover], al
je 0x1001c498
inc eax
cmp eax, 0x150d
jl 0x1001c48b
cmp byte [eax + str.rsa_verify_recover], dl
jne 0x1001c479
jmp 0x1001c498
call fcn.1001b629
sub esi, 0x1edf6827
xor edx, edx
call fcn.1001b2bf
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
imul esi, esi, 0xf13910ae
mov al, byte [ebp + eax - 0x13c]
mov byte [ebp + ecx - 0x13c], al
mov eax, dword [ebp - 8]
mov cl, byte [ebp - 1]
xor esi, 0x4f918a93
sub esi, 0x50d5ee41
mov byte [ebp + eax - 0x13c], cl
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, edi
jb 0x1001c415
mov ecx, edx
mov eax, edx
mov edi, edx
inc eax
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x13c]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 8], eax
add eax, ecx
movzx eax, al
mov ecx, str.Internal_problem_setting_up_the_POST
mov dword [ebp - 0x14], eax
mov al, 0x49
sub al, 0x30
cmp al, 9
ja 0x1001c51a
inc ecx
mov al, byte [ecx]
test al, al
jne 0x1001c50b
jmp 0x1001c520
sub esi, 0x28b7103b
mov eax, dword [ebp - 0x14]
and esi, 0x1007201
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp + eax - 0x13c]
mov byte [ebp + ecx - 0x13c], al
mov eax, dword [ebp - 0x14]
mov cl, byte [ebp - 1]
mov byte [ebp + eax - 0x13c], cl
mov ecx, edx
mov eax, str.format:indent
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x27a
jg 0x1001c561
cmp word [eax], dx
jne 0x1001c54e
jmp 0x1001c56c
call fcn.1001b11f
add esi, 0xc21a4ea
add esi, 0x2ded7295
mov edx, 0x2489
push 0x49
or esi, 0x62291d3f
mov eax, str.Internal_problem_setting_up_the_POST
pop ecx
add edx, ecx
inc eax
cmp edx, 0x163b
ja 0x1001c599
movsx ecx, byte [eax]
test ecx, ecx
jne 0x1001c585
jmp 0x1001c5a6
push ecx
call fcn.1001b3f2
pop ecx
and esi, 0x9be3b9e0
mov eax, dword [ebp - 0xc]
xor esi, 0x8879822f
mov ecx, dword [ebp - 0x14]
push 9
imul esi, esi, 0xcba9dc0
movzx eax, byte [ebp + eax - 0x13c]
add eax, dword [ebp - 8]
movzx eax, al
mov al, byte [ebp + eax - 0x13c]
xor al, byte [ebp + edi - 0x30]
mov byte [ebp + edi - 0x24], al
inc edi
pop eax
push 0
cmp edi, eax
mov eax, dword [ebp - 0xc]
pop edx
jb 0x1001c4e5
mov byte [ebp - 0x1b], dl
lea edx, [ebp - 0x24]
mov dword [0x1002b5d8], esi
lea ecx, [ebp - 0x1a0]
call fcn.10014885
mov esi, dword [ebp - 0x38]
mov eax, dword [esi*4 + 0x1002b6f8]
test eax, eax
jne 0x1001c620
lea eax, [ebp - 0x1a0]
push eax
call dword [0x1002b6f4]
mov dword [esi*4 + 0x1002b6f8], eax
push dword [ebp - 0x3c]
push eax
call dword [0x1002b6ec]
jmp 0x1001c64e
push 0x51
pop eax
mov dword [ebp - 0x24], 0x55
mov dword [ebp - 0x20], 0x4e
mov dword [ebp - 0x1c], 0xffffff0c
add eax, dword [ebp + edx*4 - 0x24]
inc edx
cmp edx, 3
jl 0x1001c644
pop edi
pop esi
leave
ret