Function at 0x10012380
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1004018e
push eax
mov eax, 0x13e8
mov dword fs:[0], esp
call fcn.1003f4e0
push 0x810
lea eax, [ebp - 0x13f4]
push 0
push eax
call fcn.1002da40
add esp, 0xc
lea eax, [ebp - 0x1e4]
push 0x10006c50
push 0x10006ca0
push 8
push 0xc
push eax
call fcn.1002c466
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x13f4]
mov ecx, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x13c], 0x10119570
mov dword [ebp - 0x138], 0x100
call fcn.1000a320
test eax, eax
je 0x100130fd
lea eax, [ebp - 0x13f4]
mov dword [ebp - 0x18], 0x101
mov dword [0x10119438], eax
lea eax, [ebp - 0x16c]
push esi
push eax
mov dword [ebp - 0x14], 0x5000000
mov dword [ebp - 0x10], 0x12
call fcn.1000d890
mov esi, eax
lea edx, [ebp - 0x18]
add esp, 4
mov ecx, dword [esi + 0xc]
call fcn.1000fb10
test al, al
je 0x100130fc
push 0x100
lea eax, [ebp - 0x2e4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0x2e4]
mov edx, 0x100
push eax
push 4
push 0x100f4490
mov ecx, 0x100f4494
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
lea esp, [esp]
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x100124c0
push ebx
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x2e4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x100124d2
push edi
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x128]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x128]
mov byte [ebp + edi - 0x128], al
mov byte [ebp + ebx - 0x128], cl
movzx eax, byte [ebp + edi - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012513
call fcn.10005040
test eax, eax
je 0x100130fa
xor eax, eax
mov edx, 0x1a
mov dword [ebp - 0x158], eax
mov ecx, 0x100471d4
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], eax
mov word [ebp - 0x140], ax
lea eax, [ebp - 0x158]
push eax
push 4
push 0x100471d0
call fcn.10007600
add esp, 0xc
lea ecx, [ebp - 0x158]
call fcn.1000aa00
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x1f4
call edi
call fcn.10001c30
call fcn.10002fd0
call fcn.10014750
test eax, eax
je 0x100130fa
call fcn.10014a30
test eax, eax
jne 0x100130fa
push ecx
lea ecx, [ebp - 0x170]
mov dword [ebp - 0x170], 7
mov dword [ebp - 0x16c], 9
mov dword [ebp - 0x168], 0x14
mov dword [ebp - 0x164], 0x1d
mov dword [ebp - 0x160], 3
mov dword [ebp - 0x15c], 5
call fcn.1000f070
add esp, 4
call fcn.10007720
test eax, eax
je 0x100130fa
lea eax, [ebp - 0x1cc]
push eax
push ecx
lea edx, [ebp - 0x28]
mov ecx, 2
call fcn.10013140
add esp, 8
test eax, eax
je 0x100130fa
lea eax, [ebp - 0x1c0]
push eax
push ecx
lea edx, [ebp - 0x28]
mov ecx, 3
call fcn.10013140
add esp, 8
test eax, eax
je 0x100130fa
mov eax, dword [ebp - 0x1c8]
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x1cc]
sub eax, edx
push eax
call fcn.10006800
add esp, 4
test eax, eax
jne 0x100126d5
lea ecx, [ecx]
push 0x1388
call edi
mov eax, dword [ebp - 0x1c8]
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x1cc]
sub eax, edx
push eax
call fcn.10006800
add esp, 4
test eax, eax
je 0x100126b0
push 0x100
lea eax, [ebp - 0x3e4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0x3e4]
mov edx, 0x100
push eax
push 4
push 0x100fc430
mov ecx, 0x100fc434
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
nop
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10012720
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x3e4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10012731
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x128]
movzx edx, cl
lea eax, [edi + edx]
movzx edi, al
mov al, byte [ebp + edi - 0x128]
mov byte [ebp + ebx - 0x128], al
mov byte [ebp + edi - 0x128], cl
movzx eax, byte [ebp + ebx - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012771
call fcn.10009e70
push 0x100
lea eax, [ebp - 0x4e4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0x4e4]
mov edx, 0x100
push eax
push 4
push 0x100f3160
mov ecx, 0x100f3164
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
mov edi, edi
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10012810
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x4e4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10012821
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x128]
movzx edx, cl
lea eax, [edi + edx]
movzx edi, al
mov al, byte [ebp + edi - 0x128]
mov byte [ebp + ebx - 0x128], al
mov byte [ebp + edi - 0x128], cl
movzx eax, byte [ebp + ebx - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012861
lea eax, [ebp - 0x1b4]
push eax
push ecx
lea edx, [ebp - 0x28]
mov ecx, 4
call fcn.10013140
add esp, 8
test eax, eax
je 0x100130fa
push 0x100
lea eax, [ebp - 0x5e4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0x5e4]
mov edx, 0x100
push eax
push 4
push 0x100f3030
mov ecx, 0x100f3034
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
lea esp, [esp]
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10012920
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x5e4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10012931
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x128]
movzx edx, cl
lea eax, [edx + edi]
movzx edi, al
mov al, byte [ebp + edi - 0x128]
mov byte [ebp + ebx - 0x128], al
mov byte [ebp + edi - 0x128], cl
movzx eax, byte [ebp + ebx - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012971
mov eax, dword [ebp - 0x1b0]
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x1b4]
sub eax, edx
push eax
call fcn.100068f0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 4
test eax, eax
jne 0x10012a08
push 0x1388
call edi
mov eax, dword [ebp - 0x1b0]
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x1b4]
sub eax, edx
push eax
call fcn.100068f0
add esp, 4
test eax, eax
je 0x100129e3
push 0x100
lea eax, [ebp - 0x6e4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0x6e4]
mov edx, 0x100
push eax
push 4
push 0x100fc050
mov ecx, 0x100fc054
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10012a52
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x6e4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10012a63
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x128]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x128]
mov byte [ebp + edi - 0x128], al
mov byte [ebp + ebx - 0x128], cl
movzx eax, byte [ebp + edi - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012aa3
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 1
push eax
push ecx
lea edx, [ebp - 0x28]
mov ecx, 5
call fcn.10013140
add esp, 8
test eax, eax
jne 0x10012b67
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x100130fa
mov edx, dword [ebp - 0x10]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x10013129
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10013135
jmp 0x10013129
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
sub eax, edx
push ecx
lea ecx, [ebp - 0x13c]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100066c0
add esp, 0xc
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
test eax, eax
je 0x10012b33
test ecx, ecx
je 0x10012bbf
mov edx, dword [ebp - 0x10]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x10012bb5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10013135
push edx
push ecx
call fcn.1002c0ea
add esp, 8
lea eax, [ebp - 0x1e4]
push eax
push ecx
lea edx, [ebp - 0x28]
xor ecx, ecx
call fcn.10013140
add esp, 8
test eax, eax
je 0x100130fa
lea eax, [ebp - 0x1d8]
push eax
push ecx
lea edx, [ebp - 0x28]
mov ecx, 1
call fcn.10013140
add esp, 8
test eax, eax
je 0x100130fa
push 0x100
lea eax, [ebp - 0x7e4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0x7e4]
mov edx, 0x100
push eax
push 4
push 0x100f46b0
mov ecx, 0x100f46b4
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
jmp 0x10012c50
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10012c50
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x7e4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10012c61
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x128]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x128]
mov byte [ebp + edi - 0x128], al
mov byte [ebp + ebx - 0x128], cl
movzx eax, byte [ebp + edi - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012ca1
push 0x100
lea eax, [ebp - 0x8e4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0x8e4]
mov edx, 0x100
push eax
push 4
push 0x100fd650
mov ecx, 0x100fd654
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
lea esp, [esp]
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10012d40
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x8e4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10012d51
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x128]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x128]
mov byte [ebp + edi - 0x128], al
mov byte [ebp + ebx - 0x128], cl
movzx eax, byte [ebp + edi - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012d91
push 0x100
lea eax, [ebp - 0x9e4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0x9e4]
mov edx, 0x100
push eax
push 4
push 0x100fc2e0
mov ecx, 0x100fc2e4
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
lea esp, [esp]
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10012e30
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x9e4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10012e41
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x128]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x128]
mov byte [ebp + edi - 0x128], al
mov byte [ebp + ebx - 0x128], cl
movzx eax, byte [ebp + edi - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012e81
push 0x100
lea eax, [ebp - 0xae4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0xae4]
mov edx, 0x100
push eax
push 4
push 0x100e1910
mov ecx, 0x100e1914
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
lea esp, [esp]
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10012f20
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0xae4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10012f31
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x128]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x128]
mov byte [ebp + edi - 0x128], al
mov byte [ebp + ebx - 0x128], cl
movzx eax, byte [ebp + edi - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x10012f71
lea eax, [ebp - 0x19c]
push eax
push ecx
lea edx, [ebp - 0x28]
mov ecx, 6
call fcn.10013140
add esp, 8
test eax, eax
je 0x100130fa
lea eax, [ebp - 0x190]
push eax
push ecx
lea edx, [ebp - 0x28]
mov ecx, 7
call fcn.10013140
add esp, 8
test eax, eax
je 0x100130fa
push 0x100
lea eax, [ebp - 0xbe4]
push 0
push eax
call fcn.1002da40
lea eax, [ebp - 0xbe4]
mov edx, 0x100
push eax
push 4
push 0x100f3270
mov ecx, str.R34_
call fcn.10007600
push 0x100
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.1002da40
add esp, 0x24
xor esi, esi
xor eax, eax
lea esp, [esp]
mov byte [ebp + eax - 0x128], al
inc eax
cmp eax, 0x100
jb 0x10013050
xor ebx, ebx
mov dl, byte [ebp + ebx - 0x128]
movzx eax, bl
movzx ecx, dl
movzx eax, byte [ebp + eax - 0xbe4]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x128]
mov byte [ebp + ebx - 0x128], al
inc ebx
mov byte [ebp + esi - 0x128], dl
cmp ebx, 0x100
jb 0x10013061
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x128]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x128]
mov byte [ebp + edi - 0x128], al
mov byte [ebp + ebx - 0x128], cl
movzx eax, byte [ebp + edi - 0x128]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x128]
xor byte [esi + 0x10119570], al
inc esi
cmp esi, 0x100
jb 0x100130a1
lea ecx, [ebp - 0x1e4]
call fcn.10013510
pop edi
pop ebx
pop esi
push 0x10006c50
push 8
push 0xc
lea eax, [ebp - 0x1e4]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1002c368
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
push edx
push ecx
call fcn.1002c0ea
add esp, 8
jmp 0x100130fa
call fcn.10030f4c
int3