Function at 0x10009305
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10063050
call fcn.10062638
push ecx
mov eax, 0x9d0c
call fcn.1005e790
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x70], edx
push edi
mov dword [ebp - 0x10], esp
cmp byte [ebp + 0x14], bl
je 0x1000986a
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 4], ebx
cmp dword [eax + 0x10], ebx
je 0x10009851
push 0x2e
pop eax
mov word [ebp - 0x4c], 0xd00
mov word [ebp - 0x48], ax
mov dword [ebp - 0x18], 0x17e2
cmp dword [ebp - 0x18], 0x1088
jge 0x10009518
call fcn.1004a8b8
push eax
push 0x1006c76c
push str.in.txt
call fcn.1004ad01
add esp, 0xc
call fcn.1004a8b8
add eax, 0x20
push eax
push 0x1006c778
push str.out.txt
call fcn.1004ad01
add esp, 0xc
lea eax, [ebp - 0x24]
mov ecx, 0x1007e3f8
push eax
call fcn.1000c69a
mov edi, dword [ebp - 0x24]
test edi, edi
je 0x10009518
mov esi, 0x1007e2d8
push 0x18c
lea eax, [ebp - 0x264]
push ebx
push eax
call fcn.1002896c
add esp, 0xc
test edi, edi
jle 0x1000943a
lea ecx, [ebp - 0x9d1c]
mov dword [ebp - 0x18], edi
lea eax, [ebp - 0x3f4]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x2c], eax
mov dword [eax], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x5c], ecx
push ecx
mov ecx, 0x1007e3f8
call fcn.1000c69a
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx]
add edx, eax
add dword [ebp + ebx*4 - 0x264], eax
add ecx, 4
inc ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x5c], ecx
cmp ebx, edi
jl 0x100093f1
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
add ecx, 0x18c
push 0
mov dword [eax], edx
add eax, 4
dec dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], ecx
pop ebx
jne 0x100093e6
mov eax, ebx
mov edx, ebx
mov dword [ebp - 0x28], eax
mov ecx, ebx
test edi, edi
jle 0x10009494
mov eax, dword [ebp + ecx*4 - 0x3f4]
and eax, 0x80000001
jns 0x1000945a
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
jne 0x10009463
inc ebx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp + ecx*4 - 0x264]
and eax, 0x80000001
jns 0x10009476
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
jne 0x1000947f
inc edx
mov dword [ebp - 0x40], ecx
lea eax, [edx + ebx]
cmp eax, 2
jg 0x1000948c
inc ecx
cmp ecx, edi
jl 0x10009447
mov dword [ebp - 0x28], ebx
xor ebx, ebx
mov eax, dword [ebp - 0x28]
lea ecx, [edx + eax]
test ecx, ecx
jne 0x100094a2
mov edx, 0x1006c784
jmp 0x100094f1
cmp eax, 1
jne 0x100094e8
cmp edx, eax
jne 0x100094e8
mov eax, dword [ebp - 0x40]
mov edx, str.Change_bit__
inc eax
push eax
mov eax, dword [ebp - 0x1c]
push ecx
inc eax
push eax
push ecx
mov ecx, esi
call fcn.1000714a
pop ecx
mov ecx, eax
call fcn.1000c895
mov edx, 0x1006c78c
mov ecx, eax
call fcn.1000714a
pop ecx
mov ecx, eax
call fcn.1000c895
mov edx, 0x1006c788
mov ecx, eax
jmp 0x100094f3
test ecx, ecx
jle 0x100094ff
mov edx, str.Corrupt
mov ecx, esi
call fcn.1000714a
push eax
call fcn.1000f261
pop ecx
lea eax, [ebp - 0x24]
mov ecx, 0x1007e3f8
push eax
call fcn.1000c69a
mov edi, dword [ebp - 0x24]
test edi, edi
jne 0x100093b8
xor eax, eax
mov dword [ebp - 0x80], 7
mov word [ebp - 0x46], ax
lea ecx, [ebp - 0x94]
mov word [ebp - 0x94], ax
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0x84], ebx
call fcn.1000d22d
mov edx, dword [ebp + 8]
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.10007af6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 3
call fcn.100053e2
mov edi, dword [ebp - 0x54]
mov eax, edi
mov esi, dword [ebp - 0x58]
sub eax, esi
push 0x18
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x48], ebx
test eax, eax
jne 0x10009842
mov dword [ebp - 0x20], 0x7f35
cmp dword [ebp - 0x20], 0x7f42
jle 0x100096a5
mov dword [ebp - 0x1c], 0x202f
cmp dword [ebp - 0x1c], 0xe3b
jge 0x1000963e
lea eax, [ebp - 0x30]
mov edi, 0x1007e3f8
push eax
mov ecx, edi
call fcn.1000c69a
mov esi, dword [ebp - 0x30]
lea ecx, [ebp - 0x7c]
push esi
call fcn.10004f00
mov byte [ebp - 4], 4
test esi, esi
jle 0x100095e7
mov ebx, esi
mov esi, dword [ebp - 0x7c]
push esi
mov ecx, edi
call fcn.1000c69a
add esi, 4
dec ebx
jne 0x100095d6
mov esi, dword [ebp - 0x30]
mov edi, ebx
test esi, esi
jle 0x10009627
mov ebx, dword [ebp - 0x7c]
mov ecx, dword [ebx + edi*4]
mov eax, ecx
and eax, 0x80000001
jns 0x10009601
dec eax
or eax, 0xfffffffe
inc eax
jne 0x10009609
lea eax, [ecx - 1]
push eax
jmp 0x1000960a
push ecx
mov ecx, 0x1007e2d8
call fcn.1000c895
mov edx, 0x1006c7f4
mov ecx, eax
call fcn.1000714a
inc edi
cmp edi, esi
jl 0x100095f0
xor ebx, ebx
push 0x1007e2d8
call fcn.1000f261
pop ecx
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 3
call fcn.10004f62
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov eax, edi
mov edi, ebx
cdq
idiv esi
mov ebx, dword [ebp - 0x24]
mov esi, 0x1b8
mov dword [ebp - 0x1c], edx
mov ecx, edi
mov eax, ebx
sar eax, cl
mov ecx, 0x1007e2d8
cdq
push edx
push eax
call fcn.10004c4e
add edi, dword [ebp - 0x1c]
dec esi
jne 0x1000965d
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x30], esi
push 0
pop ebx
cmp esi, 0x35d2
jl 0x1000964b
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x62f6
jl 0x10009646
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x5df9
jl 0x10009641
mov byte [ebp - 4], 5
cmp dword [ebp - 0x20], 0x7bc2
jge 0x100096df
mov edx, str.fckx_gcbdk_towgcwmpd_fvgjarxhs_tbcmvvtrl_seoqxr_tyo_yrjkq_bmww_sky_jfqyf
mov ecx, 0x1007e2d8
call fcn.1000714a
jmp 0x100096df
push 0x2d
pop eax
mov dword [ebp - 4], 3
mov ecx, ebx
push 2
mov byte [ebp - 0x38], bl
mov dword [ebp - 0x37], 0xb2ac038f
mov byte [ebp - 0x33], 0x37
mov word [ebp - 0x3c], ax
pop esi
mov dword [ebp - 0x44], ecx
cmp esi, 2
jne 0x10009712
push 4
pop ecx
push ecx
mov dword [ebp - 0x44], ecx
pop esi
jmp 0x10009756
movzx edx, byte [ebp + esi - 0x37]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x3a]
movzx ecx, word [ebp + eax*2 - 0x3c]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x38]
add ecx, edx
mov edx, 0x1839
mov word [ebp + eax*2 - 0x3c], cx
lea eax, [ebp - 0x44]
push eax
push 1
push 1
mov ecx, 0x3180
call fcn.100092b3
mov ecx, dword [ebp - 0x44]
add esp, 0xc
add esi, 2
cmp esi, 6
jb 0x10009703
xor eax, eax
mov dword [ebp - 0x98], 7
mov word [ebp - 0x3a], ax
lea ecx, [ebp - 0xac]
mov word [ebp - 0xac], ax
lea eax, [ebp - 0x3c]
push eax
mov dword [ebp - 0x9c], ebx
call fcn.1000d22d
mov edx, dword [ebp + 8]
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 7
call fcn.10007af6
pop ecx
mov esi, eax
lea eax, [ebp - 0x58]
cmp eax, esi
je 0x100097cd
mov ecx, eax
call fcn.1000d440
mov ecx, dword [esi]
mov dword [ebp - 0x58], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x50], eax
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
lea ecx, [ebp - 0xb8]
call fcn.1000d440
push ebx
push 1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 3
call fcn.100053e2
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x58]
jmp 0x10009842
push esi
lea ecx, [ebp - 0xd0]
call fcn.10004d63
push 0x2647
push ecx
push 0x614e
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 9
push eax
push ecx
push ecx
push 1
push 0x4779
push 0x3eea
lea ecx, [ebp - 0x68]
call fcn.1000c061
add esp, 0x24
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xd0]
push ebx
push 1
call fcn.100053e2
add esi, 0x18
cmp esi, edi
jne 0x100097f2
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], bl
call fcn.1000d440
mov ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x68]
push eax
call fcn.1000ce6b
lea ecx, [ebp - 0x68]
call fcn.1000d4d0
jmp 0x10009946
mov dword [ebp - 0x2c], 0x70d1
cmp dword [ebp - 0x2c], 0x73b3
jle 0x100098ea
push 0x1b5c
push 0x15a2
push ebx
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov eax, edi
mov dword [ebp - 0x1c], ebx
cdq
idiv ecx
and edx, esi
mov dword [ebp - 0x40], edx
mov esi, edx
mov eax, esi
mov ecx, 0x1007e2d8
xor eax, ebx
cdq
push edx
push eax
call fcn.10004c4e
inc ebx
cmp ebx, 0x3bfb
jl 0x100098a6
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x20]
inc ecx
mov dword [ebp - 0x18], ecx
push 0
pop ebx
cmp ecx, 0x2252
jl 0x10009897
inc edi
cmp edi, 0xfa5
jl 0x10009892
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x7a5f
jl 0x10009890
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x2c], 0x6e08
jge 0x10009927
mov edx, str.twwmrkpfr_iiseilcmo_rop
mov ecx, 0x1007e2d8
call fcn.1000714a
jmp 0x10009927
mov edx, dword [ebp + 0x10]
mov dword [edx], ebx
cmp dword [edx], 2
jge 0x10009946
mov esi, dword [ebp + 0xc]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x32f4bb0f
inc dword [edx]
cmp dword [edx], 2
jl 0x10009934
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret