Function at 0x100bf780
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100eb9cd
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x100fc040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x1012b9cc]
mov ecx, dword [0x1010e94c]
push 0x100e1760
push 0xfffffffffffffffc
push dword [eax + 8]
call ecx
mov esi, dword [0x1012b964]
mov dword [0x1012c494], eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0
mov dword [0x1012be18], esi
mov eax, dword [esi]
mov dword [0x1012be1c], eax
test eax, eax
je 0x100bf87c
xor edi, edi
mov eax, dword [0x1012be1c]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100bf81f
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100bf81f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100bf81f
test eax, 0x100
jne 0x100bf81f
inc edi
jmp 0x100bf7f0
mov dword [0x1012be24], edi
test edi, edi
je 0x100bf87c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012be20
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012be20]
test edi, edi
je 0x100bf87c
mov eax, dword [0x1012be24]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012be1c]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012be28], 1
xor eax, eax
cmp byte [0x1012be28], al
setne al
add eax, 0x29
cmp dword [0x1012be1c], 0
je 0x100bf8ac
mov ecx, dword [0x1012be20]
test ecx, ecx
je 0x100bf8ac
cmp eax, dword [0x1012be24]
ja 0x100bf8ac
mov dword [ecx + eax*4], 0x100cfcf0
mov esi, dword [0x1012b94c]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 1
mov dword [0x1012be40], esi
mov eax, dword [esi]
mov dword [0x1012be44], eax
test eax, eax
je 0x100bf95f
xor edi, edi
mov eax, dword [0x1012be44]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100bf902
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100bf902
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100bf902
test eax, 0x100
jne 0x100bf902
inc edi
jmp 0x100bf8d3
mov dword [0x1012be4c], edi
test edi, edi
je 0x100bf95f
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012be48
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012be48]
test edi, edi
je 0x100bf95f
mov eax, dword [0x1012be4c]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012be44]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012be50], 1
xor eax, eax
cmp byte [0x1012be50], al
setne al
add eax, 5
cmp dword [0x1012be44], 0
je 0x100bf98f
mov ecx, dword [0x1012be48]
test ecx, ecx
je 0x100bf98f
cmp eax, dword [0x1012be4c]
ja 0x100bf98f
mov dword [ecx + eax*4], 0x100c5610
xor eax, eax
cmp byte [0x1012be50], al
setne al
add eax, 6
cmp dword [0x1012be44], 0
je 0x100bf9bf
mov ecx, dword [0x1012be48]
test ecx, ecx
je 0x100bf9bf
cmp eax, dword [0x1012be4c]
ja 0x100bf9bf
mov dword [ecx + eax*4], 0x100c56c0
xor eax, eax
cmp byte [0x1012be50], al
setne al
add eax, 7
cmp dword [0x1012be44], 0
je 0x100bf9ef
mov ecx, dword [0x1012be48]
test ecx, ecx
je 0x100bf9ef
cmp eax, dword [0x1012be4c]
ja 0x100bf9ef
mov dword [ecx + eax*4], 0x100c5710
xor eax, eax
cmp byte [0x1012be50], al
setne al
add eax, 0x24
cmp dword [0x1012be44], 0
je 0x100bfa1f
mov ecx, dword [0x1012be48]
test ecx, ecx
je 0x100bfa1f
cmp eax, dword [0x1012be4c]
ja 0x100bfa1f
mov dword [ecx + eax*4], 0x100c5780
mov esi, dword [0x1012b954]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 2
mov dword [0x1012be68], esi
mov eax, dword [esi]
mov dword [0x1012be6c], eax
test eax, eax
je 0x100bfad2
xor edi, edi
mov eax, dword [0x1012be6c]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100bfa75
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100bfa75
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100bfa75
test eax, 0x100
jne 0x100bfa75
inc edi
jmp 0x100bfa46
mov dword [0x1012be74], edi
test edi, edi
je 0x100bfad2
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012be70
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012be70]
test edi, edi
je 0x100bfad2
mov eax, dword [0x1012be74]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012be6c]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012be78], 1
xor eax, eax
cmp byte [0x1012be78], al
setne al
add eax, 0x1b
cmp dword [0x1012be6c], 0
je 0x100bfb02
mov ecx, dword [0x1012be70]
test ecx, ecx
je 0x100bfb02
cmp eax, dword [0x1012be74]
ja 0x100bfb02
mov dword [ecx + eax*4], 0x100c4390
xor eax, eax
cmp byte [0x1012be78], al
setne al
add eax, 0x5d
cmp dword [0x1012be6c], 0
je 0x100bfb32
mov ecx, dword [0x1012be70]
test ecx, ecx
je 0x100bfb32
cmp eax, dword [0x1012be74]
ja 0x100bfb32
mov dword [ecx + eax*4], 0x100c4510
mov esi, dword [0x1012b9a8]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 3
mov dword [0x1012be7c], esi
mov eax, dword [esi]
mov dword [0x1012be80], eax
test eax, eax
je 0x100bfbec
xor edi, edi
nop dword [eax]
mov eax, dword [0x1012be80]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100bfb8f
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100bfb8f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100bfb8f
test eax, 0x100
jne 0x100bfb8f
inc edi
jmp 0x100bfb60
mov dword [0x1012be88], edi
test edi, edi
je 0x100bfbec
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012be84
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012be84]
test edi, edi
je 0x100bfbec
mov eax, dword [0x1012be88]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012be80]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012be8c], 1
xor eax, eax
cmp byte [0x1012be8c], al
setne al
add eax, 5
cmp dword [0x1012be80], 0
je 0x100bfc1c
mov ecx, dword [0x1012be84]
test ecx, ecx
je 0x100bfc1c
cmp eax, dword [0x1012be88]
ja 0x100bfc1c
mov dword [ecx + eax*4], 0x100c46c0
mov esi, dword [0x1012b96c]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 4
mov dword [0x1012be90], esi
mov eax, dword [esi]
mov dword [0x1012be94], eax
test eax, eax
je 0x100bfccf
xor edi, edi
mov eax, dword [0x1012be94]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100bfc72
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100bfc72
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100bfc72
test eax, 0x100
jne 0x100bfc72
inc edi
jmp 0x100bfc43
mov dword [0x1012be9c], edi
test edi, edi
je 0x100bfccf
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012be98
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012be98]
test edi, edi
je 0x100bfccf
mov eax, dword [0x1012be9c]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012be94]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bea0], 1
xor eax, eax
cmp byte [0x1012bea0], al
setne al
add eax, 0xe
cmp dword [0x1012be94], 0
je 0x100bfcff
mov ecx, dword [0x1012be98]
test ecx, ecx
je 0x100bfcff
cmp eax, dword [0x1012be9c]
ja 0x100bfcff
mov dword [ecx + eax*4], 0x100d7310
xor eax, eax
cmp byte [0x1012bea0], al
setne al
add eax, 0x13
cmp dword [0x1012be94], 0
je 0x100bfd2f
mov ecx, dword [0x1012be98]
test ecx, ecx
je 0x100bfd2f
cmp eax, dword [0x1012be9c]
ja 0x100bfd2f
mov dword [ecx + eax*4], 0x100d7700
mov esi, dword [0x1012b9b0]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 5
mov dword [0x1012be2c], esi
mov eax, dword [esi]
mov dword [0x1012be30], eax
test eax, eax
je 0x100bfde2
xor edi, edi
mov eax, dword [0x1012be30]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100bfd85
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100bfd85
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100bfd85
test eax, 0x100
jne 0x100bfd85
inc edi
jmp 0x100bfd56
mov dword [0x1012be38], edi
test edi, edi
je 0x100bfde2
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012be34
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012be34]
test edi, edi
je 0x100bfde2
mov eax, dword [0x1012be38]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012be30]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012be3c], 1
xor eax, eax
cmp byte [0x1012be3c], al
setne al
add eax, 0x10
cmp dword [0x1012be30], 0
je 0x100bfe12
mov ecx, dword [0x1012be34]
test ecx, ecx
je 0x100bfe12
cmp eax, dword [0x1012be38]
ja 0x100bfe12
mov dword [ecx + eax*4], 0x100cfb90
xor eax, eax
cmp byte [0x1012be3c], al
setne al
add eax, 0x11
cmp dword [0x1012be30], 0
je 0x100bfe42
mov ecx, dword [0x1012be34]
test ecx, ecx
je 0x100bfe42
cmp eax, dword [0x1012be38]
ja 0x100bfe42
mov dword [ecx + eax*4], 0x100cfba0
xor eax, eax
cmp byte [0x1012be3c], al
setne al
add eax, 0x12
cmp dword [0x1012be30], 0
je 0x100bfe72
mov ecx, dword [0x1012be34]
test ecx, ecx
je 0x100bfe72
cmp eax, dword [0x1012be38]
ja 0x100bfe72
mov dword [ecx + eax*4], 0x100cfbc0
xor eax, eax
cmp byte [0x1012be3c], al
setne al
add eax, 0x18
cmp dword [0x1012be30], 0
je 0x100bfea2
mov ecx, dword [0x1012be34]
test ecx, ecx
je 0x100bfea2
cmp eax, dword [0x1012be38]
ja 0x100bfea2
mov dword [ecx + eax*4], 0x100cfc40
xor eax, eax
cmp byte [0x1012be3c], al
setne al
add eax, 0x2c
cmp dword [0x1012be30], 0
je 0x100bfed2
mov ecx, dword [0x1012be34]
test ecx, ecx
je 0x100bfed2
cmp eax, dword [0x1012be38]
ja 0x100bfed2
mov dword [ecx + eax*4], 0x100cfcc0
mov esi, dword [0x1012b960]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 6
mov dword [0x1012bea4], esi
mov eax, dword [esi]
mov dword [0x1012bea8], eax
test eax, eax
je 0x100bff8c
xor edi, edi
nop dword [eax]
mov eax, dword [0x1012bea8]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100bff2f
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100bff2f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100bff2f
test eax, 0x100
jne 0x100bff2f
inc edi
jmp 0x100bff00
mov dword [0x1012beb0], edi
test edi, edi
je 0x100bff8c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012beac
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012beac]
test edi, edi
je 0x100bff8c
mov eax, dword [0x1012beb0]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bea8]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012beb4], 1
xor eax, eax
cmp byte [0x1012beb4], al
setne al
add eax, 0x43
cmp dword [0x1012bea8], 0
je 0x100bffbc
mov ecx, dword [0x1012beac]
test ecx, ecx
je 0x100bffbc
cmp eax, dword [0x1012beb0]
ja 0x100bffbc
mov dword [ecx + eax*4], 0x100cb480
xor eax, eax
cmp byte [0x1012beb4], al
setne al
add eax, 0x52
cmp dword [0x1012bea8], 0
je 0x100bffec
mov ecx, dword [0x1012beac]
test ecx, ecx
je 0x100bffec
cmp eax, dword [0x1012beb0]
ja 0x100bffec
mov dword [ecx + eax*4], 0x100cb4d0
xor eax, eax
cmp byte [0x1012beb4], al
setne al
add eax, 0x74
cmp dword [0x1012bea8], 0
je 0x100c001c
mov ecx, dword [0x1012beac]
test ecx, ecx
je 0x100c001c
cmp eax, dword [0x1012beb0]
ja 0x100c001c
mov dword [ecx + eax*4], 0x100cb590
mov esi, dword [0x1012b980]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 7
mov dword [0x1012bef4], esi
mov eax, dword [esi]
mov dword [0x1012bef8], eax
test eax, eax
je 0x100c00cf
xor edi, edi
mov eax, dword [0x1012bef8]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c0072
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c0072
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c0072
test eax, 0x100
jne 0x100c0072
inc edi
jmp 0x100c0043
mov dword [0x1012bf00], edi
test edi, edi
je 0x100c00cf
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012befc
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012befc]
test edi, edi
je 0x100c00cf
mov eax, dword [0x1012bf00]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bef8]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bf04], 1
xor eax, eax
cmp byte [0x1012bf04], al
setne al
add eax, 0x15
cmp dword [0x1012bef8], 0
je 0x100c00ff
mov ecx, dword [0x1012befc]
test ecx, ecx
je 0x100c00ff
cmp eax, dword [0x1012bf00]
ja 0x100c00ff
mov dword [ecx + eax*4], 0x100ba980
mov esi, dword [0x1012b978]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 8
mov dword [0x1012bee0], esi
mov eax, dword [esi]
mov dword [0x1012bee4], eax
test eax, eax
je 0x100c01b2
xor edi, edi
mov eax, dword [0x1012bee4]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c0155
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c0155
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c0155
test eax, 0x100
jne 0x100c0155
inc edi
jmp 0x100c0126
mov dword [0x1012beec], edi
test edi, edi
je 0x100c01b2
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012bee8
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012bee8]
test edi, edi
je 0x100c01b2
mov eax, dword [0x1012beec]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bee4]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bef0], 1
xor eax, eax
cmp byte [0x1012bef0], al
setne al
add eax, 9
cmp dword [0x1012bee4], 0
je 0x100c01e2
mov ecx, dword [0x1012bee8]
test ecx, ecx
je 0x100c01e2
cmp eax, dword [0x1012beec]
ja 0x100c01e2
mov dword [ecx + eax*4], 0x100d7910
mov esi, dword [0x1012b9d8]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 9
mov dword [0x1012bf08], esi
mov eax, dword [esi]
mov dword [0x1012bf0c], eax
test eax, eax
je 0x100c029c
xor edi, edi
nop dword [eax]
mov eax, dword [0x1012bf0c]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c023f
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c023f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c023f
test eax, 0x100
jne 0x100c023f
inc edi
jmp 0x100c0210
mov dword [0x1012bf14], edi
test edi, edi
je 0x100c029c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012bf10
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012bf10]
test edi, edi
je 0x100c029c
mov eax, dword [0x1012bf14]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bf0c]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bf18], 1
xor eax, eax
cmp byte [0x1012bf18], al
setne al
add eax, 0x2b
cmp dword [0x1012bf0c], 0
je 0x100c02cc
mov ecx, dword [0x1012bf10]
test ecx, ecx
je 0x100c02cc
cmp eax, dword [0x1012bf14]
ja 0x100c02cc
mov dword [ecx + eax*4], 0x1005a930
mov esi, dword [0x1012b97c]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xa
mov dword [0x1012bf1c], esi
mov eax, dword [esi]
mov dword [0x1012bf20], eax
test eax, eax
je 0x100c037f
xor edi, edi
mov eax, dword [0x1012bf20]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c0322
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c0322
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c0322
test eax, 0x100
jne 0x100c0322
inc edi
jmp 0x100c02f3
mov dword [0x1012bf28], edi
test edi, edi
je 0x100c037f
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012bf24
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012bf24]
test edi, edi
je 0x100c037f
mov eax, dword [0x1012bf28]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bf20]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bf2c], 1
xor eax, eax
cmp byte [0x1012bf2c], al
setne al
add eax, 4
cmp dword [0x1012bf20], 0
je 0x100c03af
mov ecx, dword [0x1012bf24]
test ecx, ecx
je 0x100c03af
cmp eax, dword [0x1012bf28]
ja 0x100c03af
mov dword [ecx + eax*4], 0x100d5b00
xor eax, eax
cmp byte [0x1012bf2c], al
setne al
add eax, 6
cmp dword [0x1012bf20], 0
je 0x100c03df
mov ecx, dword [0x1012bf24]
test ecx, ecx
je 0x100c03df
cmp eax, dword [0x1012bf28]
ja 0x100c03df
mov dword [ecx + eax*4], 0x100d5bb0
xor eax, eax
cmp byte [0x1012bf2c], al
setne al
add eax, 0x27
cmp dword [0x1012bf20], 0
je 0x100c040f
mov ecx, dword [0x1012bf24]
test ecx, ecx
je 0x100c040f
cmp eax, dword [0x1012bf28]
ja 0x100c040f
mov dword [ecx + eax*4], 0x100d5bf0
xor eax, eax
cmp byte [0x1012bf2c], al
setne al
add eax, 0x28
cmp dword [0x1012bf20], 0
je 0x100c043f
mov ecx, dword [0x1012bf24]
test ecx, ecx
je 0x100c043f
cmp eax, dword [0x1012bf28]
ja 0x100c043f
mov dword [ecx + eax*4], 0x100d5c10
mov esi, dword [0x1012b99c]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xb
mov dword [0x1012bf30], esi
mov eax, dword [esi]
mov dword [0x1012bf34], eax
test eax, eax
je 0x100c04f2
xor edi, edi
mov eax, dword [0x1012bf34]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c0495
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c0495
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c0495
test eax, 0x100
jne 0x100c0495
inc edi
jmp 0x100c0466
mov dword [0x1012bf3c], edi
test edi, edi
je 0x100c04f2
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012bf38
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012bf38]
test edi, edi
je 0x100c04f2
mov eax, dword [0x1012bf3c]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bf34]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bf40], 1
xor eax, eax
cmp byte [0x1012bf40], al
setne al
add eax, 0xd
cmp dword [0x1012bf34], 0
je 0x100c0522
mov ecx, dword [0x1012bf38]
test ecx, ecx
je 0x100c0522
cmp eax, dword [0x1012bf3c]
ja 0x100c0522
mov dword [ecx + eax*4], 0x1005a540
mov esi, dword [0x1012b984]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xc
mov dword [0x1012bf44], esi
mov eax, dword [esi]
mov dword [0x1012bf48], eax
test eax, eax
je 0x100c05dc
xor edi, edi
nop dword [eax]
mov eax, dword [0x1012bf48]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c057f
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c057f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c057f
test eax, 0x100
jne 0x100c057f
inc edi
jmp 0x100c0550
mov dword [0x1012bf50], edi
test edi, edi
je 0x100c05dc
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012bf4c
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012bf4c]
test edi, edi
je 0x100c05dc
mov eax, dword [0x1012bf50]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bf48]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bf54], 1
xor eax, eax
cmp byte [0x1012bf54], al
setne al
add eax, 0x15
cmp dword [0x1012bf48], 0
je 0x100c060c
mov ecx, dword [0x1012bf4c]
test ecx, ecx
je 0x100c060c
cmp eax, dword [0x1012bf50]
ja 0x100c060c
mov dword [ecx + eax*4], 0x1005a900
mov esi, dword [0x1012baf0]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xd
mov dword [0x1012bf58], esi
mov eax, dword [esi]
mov dword [0x1012bf5c], eax
test eax, eax
je 0x100c06bf
xor edi, edi
mov eax, dword [0x1012bf5c]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c0662
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c0662
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c0662
test eax, 0x100
jne 0x100c0662
inc edi
jmp 0x100c0633
mov dword [0x1012bf64], edi
test edi, edi
je 0x100c06bf
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012bf60
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012bf60]
test edi, edi
je 0x100c06bf
mov eax, dword [0x1012bf64]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bf5c]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bf68], 1
xor eax, eax
cmp byte [0x1012bf68], al
setne al
add eax, 7
cmp dword [0x1012bf5c], 0
je 0x100c06ef
mov ecx, dword [0x1012bf60]
test ecx, ecx
je 0x100c06ef
cmp eax, dword [0x1012bf64]
ja 0x100c06ef
mov dword [ecx + eax*4], 0x10055a80
mov esi, dword [0x1012b9ec]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xe
mov dword [0x1012be54], esi
mov eax, dword [esi]
mov dword [0x1012be58], eax
test eax, eax
je 0x100c07a2
xor edi, edi
mov eax, dword [0x1012be58]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c0745
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c0745
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c0745
test eax, 0x100
jne 0x100c0745
inc edi
jmp 0x100c0716
mov dword [0x1012be60], edi
test edi, edi
je 0x100c07a2
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012be5c
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012be5c]
test edi, edi
je 0x100c07a2
mov eax, dword [0x1012be60]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012be58]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012be64], 1
xor eax, eax
mov dword [ebp - 4], 0xffffffff
cmp byte [0x1012be64], al
setne al
add eax, 0x18
cmp dword [0x1012be58], 0
je 0x100c07d9
mov ecx, dword [0x1012be5c]
test ecx, ecx
je 0x100c07d9
cmp eax, dword [0x1012be60]
ja 0x100c07d9
mov dword [ecx + eax*4], 0x1003e510
push 0x100fc098
call dword [0x1012bb00]
mov esi, dword [0x1012ba38]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xf
mov dword [0x1012c480], esi
mov eax, dword [esi]
mov dword [0x1012c484], eax
test eax, eax
je 0x100c089c
xor edi, edi
nop dword [eax + eax]
mov eax, dword [0x1012c484]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c083f
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c083f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c083f
test eax, 0x100
jne 0x100c083f
inc edi
jmp 0x100c0810
mov dword [0x1012c48c], edi
test edi, edi
je 0x100c089c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012c488
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012c488]
test edi, edi
je 0x100c089c
mov eax, dword [0x1012c48c]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012c484]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012c490], 1
xor eax, eax
cmp byte [0x1012c490], al
setne al
add eax, 0xd
cmp dword [0x1012c484], 0
je 0x100c08cc
mov ecx, dword [0x1012c488]
test ecx, ecx
je 0x100c08cc
cmp eax, dword [0x1012c48c]
ja 0x100c08cc
mov dword [ecx + eax*4], 0x100ba4b0
mov esi, dword [0x1012ba3c]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0x10
mov dword [0x1012bf6c], esi
mov eax, dword [esi]
mov dword [0x1012bf70], eax
test eax, eax
je 0x100c097f
xor edi, edi
mov eax, dword [0x1012bf70]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100c0922
mov eax, dword [0x1010e948]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100c0922
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100c0922
test eax, 0x100
jne 0x100c0922
inc edi
jmp 0x100c08f3
mov dword [0x1012bf78], edi
test edi, edi
je 0x100c097f
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.1003f000
push eax
mov ecx, 0x1012bf74
call fcn.1003f090
lea ecx, [ebp - 0x14]
call fcn.1003eb20
mov edi, dword [0x1012bf74]
test edi, edi
je 0x100c097f
mov eax, dword [0x1012bf78]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012bf70]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x1012bf7c], 1
xor eax, eax
mov dword [ebp - 4], 0xffffffff
cmp byte [0x1012bf7c], al
setne al
add eax, 0xd
cmp dword [0x1012bf70], 0
je 0x100c09b6
mov ecx, dword [0x1012bf74]
test ecx, ecx
je 0x100c09b6
cmp eax, dword [0x1012bf78]
ja 0x100c09b6
mov dword [ecx + eax*4], 0x100ba640
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0xf3c2c786
push eax
mov ecx, 0x101318d8
mov dword [ebp - 0x1c], 0x72e242a1
call fcn.100b8c40
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
call fcn.100b8c20
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x44], xmm0
cmp byte [ebp - 0x44], 0
mov dword [ebp - 0x3c], eax
jne 0x100c0a04
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x1012c4b0], eax
mov dword [ecx + 0x20], 0x100bf420
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x9ef0d03e
push eax
mov ecx, 0x101318d8
mov dword [ebp - 0x18], 0x72e242a1
call fcn.100b8c40
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.100b8c20
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x44], xmm0
cmp byte [ebp - 0x44], 0
mov dword [ebp - 0x3c], eax
jne 0x100c0a52
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x1012c4b4], eax
mov dword [ecx + 0x20], 0x100bf480
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x566bd764
push eax
mov ecx, 0x101318d8
mov dword [ebp - 0x18], 0x2aafa737
call fcn.100b8c40
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.100b8c20
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x44], xmm0
cmp byte [ebp - 0x44], 0
mov dword [ebp - 0x3c], eax
jne 0x100c0aa0
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 0x20]
mov dword [0x1012c4b8], eax
mov dword [edx + 0x20], 0x100bf670
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x781aa1a4
push eax
mov ecx, 0x101318d8
mov dword [ebp - 0x18], 0x2aafa737
call fcn.100b8c40
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.100b8c20
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x44], xmm0
cmp byte [ebp - 0x44], 0
mov dword [ebp - 0x3c], eax
jne 0x100c0aee
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x1012c4bc], eax
mov dword [ecx + 0x20], 0x100bf650
cmp byte [0x1013197c], 0
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
jne 0x100c0bbf
movaps xmm0, xmmword [0x100f18b0]
xor ecx, ecx
movaps xmm2, xmmword [0x100f1a20]
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x5c], 0xe161f0e
movaps xmm0, xmmword [0x100f18c0]
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x58], 0x680e6c16
mov word [ebp - 0x54], 0x2e1f
movups xmm0, xmmword [ebp + ecx - 0x7c]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + ecx - 0x7c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jb 0x100c0b34
cmp ecx, 0x2a
jae 0x100c0b5c
xor byte [ebp + ecx - 0x7c], 0x2e
inc ecx
cmp ecx, 0x2a
jb 0x100c0b51
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x50]
call fcn.10031fb0
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 0x11
push eax
mov edx, 0x1012b904
lea ecx, [ebp - 0x18]
call fcn.1005b420
add esp, 4
lea ecx, [ebp - 0x50]
mov esi, dword [eax]
add esi, 0x7e
mov dword [ebp - 4], 0xffffffff
call fcn.10031f60
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
push 0x40
push 1
push esi
call edi
lea eax, [ebp - 0x1c]
mov byte [esi], 0x3f
push eax
push dword [ebp - 0x1c]
push 1
push esi
call edi
mov byte [0x1013197c], 1
cmp byte [0x1013197d], 0
jne 0x100c0ca0
movaps xmm0, xmmword [0x100f1810]
xor ecx, ecx
movaps xmm2, xmmword [0x100f1a20]
movups xmmword [ebp - 0xb8], xmm0
mov dword [ebp - 0x88], 0x110e110e
movaps xmm0, xmmword [0x100f17c0]
movups xmmword [ebp - 0xa8], xmm0
mov byte [ebp - 0x84], 0x2e
movaps xmm0, xmmword [0x100f16c0]
movups xmmword [ebp - 0x98], xmm0
movups xmm0, xmmword [ebp + ecx - 0xb8]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + ecx - 0xb8], xmm1
add ecx, 0x10
cmp ecx, 0x30
jb 0x100c0c10
cmp ecx, 0x35
jae 0x100c0c41
xor byte [ebp + ecx - 0xb8], 0x2e
inc ecx
cmp ecx, 0x35
jb 0x100c0c33
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x34]
call fcn.10031fb0
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 0x12
push eax
mov edx, 0x1012b904
lea ecx, [ebp - 0x80]
call fcn.1005b420
add esp, 4
lea ecx, [ebp - 0x34]
mov esi, dword [eax]
add esi, 0x24
call fcn.10031f60
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push 0x40
push 1
push esi
call edi
lea eax, [ebp - 0x14]
mov byte [esi], 0x75
push eax
push dword [ebp - 0x14]
push 1
push esi
call edi
mov byte [0x1013197d], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100e1e1c
mov esp, ebp
pop ebp
ret