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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e533d
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x100f5008]
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 [0x10124964]
mov ecx, dword [0x101078dc]
push 0x100da200
push 0xfffffffffffffffc
push dword [eax + 8]
call ecx
mov esi, dword [0x101248fc]
mov dword [0x1012541c], eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0
mov dword [0x10124da0], esi
mov eax, dword [esi]
mov dword [0x10124da4], eax
test eax, eax
je 0x100b761c
xor edi, edi
mov eax, dword [0x10124da4]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b75bf
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b75bf
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b75bf
test eax, 0x100
jne 0x100b75bf
inc edi
jmp 0x100b7590
mov dword [0x10124dac], edi
test edi, edi
je 0x100b761c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124da8
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124da8]
test edi, edi
je 0x100b761c
mov eax, dword [0x10124dac]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124da4]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124db0], 1
xor eax, eax
cmp byte [0x10124db0], al
setne al
add eax, 0x29
cmp dword [0x10124da4], 0
je 0x100b764c
mov ecx, dword [0x10124da8]
test ecx, ecx
je 0x100b764c
cmp eax, dword [0x10124dac]
ja 0x100b764c
mov dword [ecx + eax*4], 0x100c7e30
mov esi, dword [0x101248e4]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 1
mov dword [0x10124dc8], esi
mov eax, dword [esi]
mov dword [0x10124dcc], eax
test eax, eax
je 0x100b76ff
xor edi, edi
mov eax, dword [0x10124dcc]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b76a2
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b76a2
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b76a2
test eax, 0x100
jne 0x100b76a2
inc edi
jmp 0x100b7673
mov dword [0x10124dd4], edi
test edi, edi
je 0x100b76ff
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124dd0
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124dd0]
test edi, edi
je 0x100b76ff
mov eax, dword [0x10124dd4]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124dcc]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124dd8], 1
xor eax, eax
cmp byte [0x10124dd8], al
setne al
add eax, 5
cmp dword [0x10124dcc], 0
je 0x100b772f
mov ecx, dword [0x10124dd0]
test ecx, ecx
je 0x100b772f
cmp eax, dword [0x10124dd4]
ja 0x100b772f
mov dword [ecx + eax*4], 0x100bd100
xor eax, eax
cmp byte [0x10124dd8], al
setne al
add eax, 6
cmp dword [0x10124dcc], 0
je 0x100b775f
mov ecx, dword [0x10124dd0]
test ecx, ecx
je 0x100b775f
cmp eax, dword [0x10124dd4]
ja 0x100b775f
mov dword [ecx + eax*4], 0x100bd1b0
xor eax, eax
cmp byte [0x10124dd8], al
setne al
add eax, 7
cmp dword [0x10124dcc], 0
je 0x100b778f
mov ecx, dword [0x10124dd0]
test ecx, ecx
je 0x100b778f
cmp eax, dword [0x10124dd4]
ja 0x100b778f
mov dword [ecx + eax*4], 0x100bd210
xor eax, eax
cmp byte [0x10124dd8], al
setne al
add eax, 0x24
cmp dword [0x10124dcc], 0
je 0x100b77bf
mov ecx, dword [0x10124dd0]
test ecx, ecx
je 0x100b77bf
cmp eax, dword [0x10124dd4]
ja 0x100b77bf
mov dword [ecx + eax*4], 0x100bd280
mov esi, dword [0x101248ec]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 2
mov dword [0x10124df0], esi
mov eax, dword [esi]
mov dword [0x10124df4], eax
test eax, eax
je 0x100b7872
xor edi, edi
mov eax, dword [0x10124df4]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b7815
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b7815
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b7815
test eax, 0x100
jne 0x100b7815
inc edi
jmp 0x100b77e6
mov dword [0x10124dfc], edi
test edi, edi
je 0x100b7872
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124df8
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124df8]
test edi, edi
je 0x100b7872
mov eax, dword [0x10124dfc]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124df4]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124e00], 1
xor eax, eax
cmp byte [0x10124e00], al
setne al
add eax, 0x1b
cmp dword [0x10124df4], 0
je 0x100b78a2
mov ecx, dword [0x10124df8]
test ecx, ecx
je 0x100b78a2
cmp eax, dword [0x10124dfc]
ja 0x100b78a2
mov dword [ecx + eax*4], 0x100bbe30
xor eax, eax
cmp byte [0x10124e00], al
setne al
add eax, 0x5d
cmp dword [0x10124df4], 0
je 0x100b78d2
mov ecx, dword [0x10124df8]
test ecx, ecx
je 0x100b78d2
cmp eax, dword [0x10124dfc]
ja 0x100b78d2
mov dword [ecx + eax*4], 0x100bbfb0
mov esi, dword [0x10124940]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 3
mov dword [0x10124e04], esi
mov eax, dword [esi]
mov dword [0x10124e08], eax
test eax, eax
je 0x100b798c
xor edi, edi
nop dword [eax]
mov eax, dword [0x10124e08]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b792f
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b792f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b792f
test eax, 0x100
jne 0x100b792f
inc edi
jmp 0x100b7900
mov dword [0x10124e10], edi
test edi, edi
je 0x100b798c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124e0c
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124e0c]
test edi, edi
je 0x100b798c
mov eax, dword [0x10124e10]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124e08]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124e14], 1
xor eax, eax
cmp byte [0x10124e14], al
setne al
add eax, 5
cmp dword [0x10124e08], 0
je 0x100b79bc
mov ecx, dword [0x10124e0c]
test ecx, ecx
je 0x100b79bc
cmp eax, dword [0x10124e10]
ja 0x100b79bc
mov dword [ecx + eax*4], 0x100bc150
mov esi, dword [0x10124904]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 4
mov dword [0x10124e18], esi
mov eax, dword [esi]
mov dword [0x10124e1c], eax
test eax, eax
je 0x100b7a6f
xor edi, edi
mov eax, dword [0x10124e1c]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b7a12
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b7a12
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b7a12
test eax, 0x100
jne 0x100b7a12
inc edi
jmp 0x100b79e3
mov dword [0x10124e24], edi
test edi, edi
je 0x100b7a6f
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124e20
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124e20]
test edi, edi
je 0x100b7a6f
mov eax, dword [0x10124e24]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124e1c]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124e28], 1
xor eax, eax
cmp byte [0x10124e28], al
setne al
add eax, 0xe
cmp dword [0x10124e1c], 0
je 0x100b7a9f
mov ecx, dword [0x10124e20]
test ecx, ecx
je 0x100b7a9f
cmp eax, dword [0x10124e24]
ja 0x100b7a9f
mov dword [ecx + eax*4], 0x100cfdc0
xor eax, eax
cmp byte [0x10124e28], al
setne al
add eax, 0x13
cmp dword [0x10124e1c], 0
je 0x100b7acf
mov ecx, dword [0x10124e20]
test ecx, ecx
je 0x100b7acf
cmp eax, dword [0x10124e24]
ja 0x100b7acf
mov dword [ecx + eax*4], 0x100d01b0
mov esi, dword [0x10124948]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 5
mov dword [0x10124db4], esi
mov eax, dword [esi]
mov dword [0x10124db8], eax
test eax, eax
je 0x100b7b82
xor edi, edi
mov eax, dword [0x10124db8]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b7b25
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b7b25
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b7b25
test eax, 0x100
jne 0x100b7b25
inc edi
jmp 0x100b7af6
mov dword [0x10124dc0], edi
test edi, edi
je 0x100b7b82
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124dbc
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124dbc]
test edi, edi
je 0x100b7b82
mov eax, dword [0x10124dc0]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124db8]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124dc4], 1
xor eax, eax
cmp byte [0x10124dc4], al
setne al
add eax, 0x10
cmp dword [0x10124db8], 0
je 0x100b7bb2
mov ecx, dword [0x10124dbc]
test ecx, ecx
je 0x100b7bb2
cmp eax, dword [0x10124dc0]
ja 0x100b7bb2
mov dword [ecx + eax*4], 0x100c7cd0
xor eax, eax
cmp byte [0x10124dc4], al
setne al
add eax, 0x11
cmp dword [0x10124db8], 0
je 0x100b7be2
mov ecx, dword [0x10124dbc]
test ecx, ecx
je 0x100b7be2
cmp eax, dword [0x10124dc0]
ja 0x100b7be2
mov dword [ecx + eax*4], 0x100c7ce0
xor eax, eax
cmp byte [0x10124dc4], al
setne al
add eax, 0x12
cmp dword [0x10124db8], 0
je 0x100b7c12
mov ecx, dword [0x10124dbc]
test ecx, ecx
je 0x100b7c12
cmp eax, dword [0x10124dc0]
ja 0x100b7c12
mov dword [ecx + eax*4], 0x100c7d00
xor eax, eax
cmp byte [0x10124dc4], al
setne al
add eax, 0x18
cmp dword [0x10124db8], 0
je 0x100b7c42
mov ecx, dword [0x10124dbc]
test ecx, ecx
je 0x100b7c42
cmp eax, dword [0x10124dc0]
ja 0x100b7c42
mov dword [ecx + eax*4], 0x100c7d80
xor eax, eax
cmp byte [0x10124dc4], al
setne al
add eax, 0x2c
cmp dword [0x10124db8], 0
je 0x100b7c72
mov ecx, dword [0x10124dbc]
test ecx, ecx
je 0x100b7c72
cmp eax, dword [0x10124dc0]
ja 0x100b7c72
mov dword [ecx + eax*4], 0x100c7e00
mov esi, dword [0x101248f8]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 6
mov dword [0x10124e2c], esi
mov eax, dword [esi]
mov dword [0x10124e30], eax
test eax, eax
je 0x100b7d2c
xor edi, edi
nop dword [eax]
mov eax, dword [0x10124e30]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b7ccf
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b7ccf
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b7ccf
test eax, 0x100
jne 0x100b7ccf
inc edi
jmp 0x100b7ca0
mov dword [0x10124e38], edi
test edi, edi
je 0x100b7d2c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124e34
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124e34]
test edi, edi
je 0x100b7d2c
mov eax, dword [0x10124e38]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124e30]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124e3c], 1
xor eax, eax
cmp byte [0x10124e3c], al
setne al
add eax, 0x43
cmp dword [0x10124e30], 0
je 0x100b7d5c
mov ecx, dword [0x10124e34]
test ecx, ecx
je 0x100b7d5c
cmp eax, dword [0x10124e38]
ja 0x100b7d5c
mov dword [ecx + eax*4], 0x100c3560
xor eax, eax
cmp byte [0x10124e3c], al
setne al
add eax, 0x52
cmp dword [0x10124e30], 0
je 0x100b7d8c
mov ecx, dword [0x10124e34]
test ecx, ecx
je 0x100b7d8c
cmp eax, dword [0x10124e38]
ja 0x100b7d8c
mov dword [ecx + eax*4], 0x100c35b0
xor eax, eax
cmp byte [0x10124e3c], al
setne al
add eax, 0x74
cmp dword [0x10124e30], 0
je 0x100b7dbc
mov ecx, dword [0x10124e34]
test ecx, ecx
je 0x100b7dbc
cmp eax, dword [0x10124e38]
ja 0x100b7dbc
mov dword [ecx + eax*4], 0x100c3670
mov esi, dword [0x10124918]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 7
mov dword [0x10124e7c], esi
mov eax, dword [esi]
mov dword [0x10124e80], eax
test eax, eax
je 0x100b7e6f
xor edi, edi
mov eax, dword [0x10124e80]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b7e12
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b7e12
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b7e12
test eax, 0x100
jne 0x100b7e12
inc edi
jmp 0x100b7de3
mov dword [0x10124e88], edi
test edi, edi
je 0x100b7e6f
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124e84
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124e84]
test edi, edi
je 0x100b7e6f
mov eax, dword [0x10124e88]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124e80]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124e8c], 1
xor eax, eax
cmp byte [0x10124e8c], al
setne al
add eax, 0x15
cmp dword [0x10124e80], 0
je 0x100b7e9f
mov ecx, dword [0x10124e84]
test ecx, ecx
je 0x100b7e9f
cmp eax, dword [0x10124e88]
ja 0x100b7e9f
mov dword [ecx + eax*4], 0x100b2720
mov esi, dword [0x10124910]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 8
mov dword [0x10124e68], esi
mov eax, dword [esi]
mov dword [0x10124e6c], eax
test eax, eax
je 0x100b7f52
xor edi, edi
mov eax, dword [0x10124e6c]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b7ef5
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b7ef5
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b7ef5
test eax, 0x100
jne 0x100b7ef5
inc edi
jmp 0x100b7ec6
mov dword [0x10124e74], edi
test edi, edi
je 0x100b7f52
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124e70
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124e70]
test edi, edi
je 0x100b7f52
mov eax, dword [0x10124e74]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124e6c]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124e78], 1
xor eax, eax
cmp byte [0x10124e78], al
setne al
add eax, 9
cmp dword [0x10124e6c], 0
je 0x100b7f82
mov ecx, dword [0x10124e70]
test ecx, ecx
je 0x100b7f82
cmp eax, dword [0x10124e74]
ja 0x100b7f82
mov dword [ecx + eax*4], 0x100d03c0
mov esi, dword [0x10124970]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 9
mov dword [0x10124e90], esi
mov eax, dword [esi]
mov dword [0x10124e94], eax
test eax, eax
je 0x100b803c
xor edi, edi
nop dword [eax]
mov eax, dword [0x10124e94]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b7fdf
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b7fdf
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b7fdf
test eax, 0x100
jne 0x100b7fdf
inc edi
jmp 0x100b7fb0
mov dword [0x10124e9c], edi
test edi, edi
je 0x100b803c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124e98
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124e98]
test edi, edi
je 0x100b803c
mov eax, dword [0x10124e9c]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124e94]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124ea0], 1
xor eax, eax
cmp byte [0x10124ea0], al
setne al
add eax, 0x2b
cmp dword [0x10124e94], 0
je 0x100b806c
mov ecx, dword [0x10124e98]
test ecx, ecx
je 0x100b806c
cmp eax, dword [0x10124e9c]
ja 0x100b806c
mov dword [ecx + eax*4], 0x1004eb80
mov esi, dword [0x10124914]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xa
mov dword [0x10124ea4], esi
mov eax, dword [esi]
mov dword [0x10124ea8], eax
test eax, eax
je 0x100b811f
xor edi, edi
mov eax, dword [0x10124ea8]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b80c2
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b80c2
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b80c2
test eax, 0x100
jne 0x100b80c2
inc edi
jmp 0x100b8093
mov dword [0x10124eb0], edi
test edi, edi
je 0x100b811f
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124eac
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124eac]
test edi, edi
je 0x100b811f
mov eax, dword [0x10124eb0]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124ea8]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124eb4], 1
xor eax, eax
cmp byte [0x10124eb4], al
setne al
add eax, 4
cmp dword [0x10124ea8], 0
je 0x100b814f
mov ecx, dword [0x10124eac]
test ecx, ecx
je 0x100b814f
cmp eax, dword [0x10124eb0]
ja 0x100b814f
mov dword [ecx + eax*4], 0x100cdc90
xor eax, eax
cmp byte [0x10124eb4], al
setne al
add eax, 6
cmp dword [0x10124ea8], 0
je 0x100b817f
mov ecx, dword [0x10124eac]
test ecx, ecx
je 0x100b817f
cmp eax, dword [0x10124eb0]
ja 0x100b817f
mov dword [ecx + eax*4], 0x100cdd40
xor eax, eax
cmp byte [0x10124eb4], al
setne al
add eax, 0x27
cmp dword [0x10124ea8], 0
je 0x100b81af
mov ecx, dword [0x10124eac]
test ecx, ecx
je 0x100b81af
cmp eax, dword [0x10124eb0]
ja 0x100b81af
mov dword [ecx + eax*4], 0x100cdd80
xor eax, eax
cmp byte [0x10124eb4], al
setne al
add eax, 0x28
cmp dword [0x10124ea8], 0
je 0x100b81df
mov ecx, dword [0x10124eac]
test ecx, ecx
je 0x100b81df
cmp eax, dword [0x10124eb0]
ja 0x100b81df
mov dword [ecx + eax*4], 0x100cdda0
mov esi, dword [0x10124934]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xb
mov dword [0x10124eb8], esi
mov eax, dword [esi]
mov dword [0x10124ebc], eax
test eax, eax
je 0x100b8292
xor edi, edi
mov eax, dword [0x10124ebc]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b8235
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b8235
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b8235
test eax, 0x100
jne 0x100b8235
inc edi
jmp 0x100b8206
mov dword [0x10124ec4], edi
test edi, edi
je 0x100b8292
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124ec0
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124ec0]
test edi, edi
je 0x100b8292
mov eax, dword [0x10124ec4]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124ebc]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124ec8], 1
xor eax, eax
cmp byte [0x10124ec8], al
setne al
add eax, 0xd
cmp dword [0x10124ebc], 0
je 0x100b82c2
mov ecx, dword [0x10124ec0]
test ecx, ecx
je 0x100b82c2
cmp eax, dword [0x10124ec4]
ja 0x100b82c2
mov dword [ecx + eax*4], 0x1004e7a0
mov esi, dword [0x1012491c]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xc
mov dword [0x10124ecc], esi
mov eax, dword [esi]
mov dword [0x10124ed0], eax
test eax, eax
je 0x100b837c
xor edi, edi
nop dword [eax]
mov eax, dword [0x10124ed0]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b831f
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b831f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b831f
test eax, 0x100
jne 0x100b831f
inc edi
jmp 0x100b82f0
mov dword [0x10124ed8], edi
test edi, edi
je 0x100b837c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124ed4
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124ed4]
test edi, edi
je 0x100b837c
mov eax, dword [0x10124ed8]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124ed0]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124edc], 1
xor eax, eax
cmp byte [0x10124edc], al
setne al
add eax, 0x15
cmp dword [0x10124ed0], 0
je 0x100b83ac
mov ecx, dword [0x10124ed4]
test ecx, ecx
je 0x100b83ac
cmp eax, dword [0x10124ed8]
ja 0x100b83ac
mov dword [ecx + eax*4], 0x1004eb50
mov esi, dword [0x10124a88]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xd
mov dword [0x10124ee0], esi
mov eax, dword [esi]
mov dword [0x10124ee4], eax
test eax, eax
je 0x100b845f
xor edi, edi
mov eax, dword [0x10124ee4]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b8402
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b8402
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b8402
test eax, 0x100
jne 0x100b8402
inc edi
jmp 0x100b83d3
mov dword [0x10124eec], edi
test edi, edi
je 0x100b845f
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124ee8
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124ee8]
test edi, edi
je 0x100b845f
mov eax, dword [0x10124eec]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124ee4]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124ef0], 1
xor eax, eax
cmp byte [0x10124ef0], al
setne al
add eax, 7
cmp dword [0x10124ee4], 0
je 0x100b848f
mov ecx, dword [0x10124ee8]
test ecx, ecx
je 0x100b848f
cmp eax, dword [0x10124eec]
ja 0x100b848f
mov dword [ecx + eax*4], 0x10049cf0
mov esi, dword [0x10124984]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xe
mov dword [0x10124ddc], esi
mov eax, dword [esi]
mov dword [0x10124de0], eax
test eax, eax
je 0x100b8542
xor edi, edi
mov eax, dword [0x10124de0]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b84e5
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b84e5
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b84e5
test eax, 0x100
jne 0x100b84e5
inc edi
jmp 0x100b84b6
mov dword [0x10124de8], edi
test edi, edi
je 0x100b8542
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124de4
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124de4]
test edi, edi
je 0x100b8542
mov eax, dword [0x10124de8]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124de0]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124dec], 1
xor eax, eax
mov dword [ebp - 4], 0xffffffff
cmp byte [0x10124dec], al
setne al
add eax, 0x18
cmp dword [0x10124de0], 0
je 0x100b8579
mov ecx, dword [0x10124de4]
test ecx, ecx
je 0x100b8579
cmp eax, dword [0x10124de8]
ja 0x100b8579
mov dword [ecx + eax*4], 0x10033050
push 0x100f5018
call dword [0x10124a98]
mov esi, dword [0x101249d0]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xf
mov dword [0x10125408], esi
mov eax, dword [esi]
mov dword [0x1012540c], eax
test eax, eax
je 0x100b863c
xor edi, edi
nop dword [eax + eax]
mov eax, dword [0x1012540c]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b85df
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b85df
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b85df
test eax, 0x100
jne 0x100b85df
inc edi
jmp 0x100b85b0
mov dword [0x10125414], edi
test edi, edi
je 0x100b863c
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10125410
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10125410]
test edi, edi
je 0x100b863c
mov eax, dword [0x10125414]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1012540c]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10125418], 1
xor eax, eax
cmp byte [0x10125418], al
setne al
add eax, 0xd
cmp dword [0x1012540c], 0
je 0x100b866c
mov ecx, dword [0x10125410]
test ecx, ecx
je 0x100b866c
cmp eax, dword [0x10125414]
ja 0x100b866c
mov dword [ecx + eax*4], 0x100b2250
mov esi, dword [0x101249d4]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0x10
mov dword [0x10124ef4], esi
mov eax, dword [esi]
mov dword [0x10124ef8], eax
test eax, eax
je 0x100b871f
xor edi, edi
mov eax, dword [0x10124ef8]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x100b86c2
mov eax, dword [0x101078d8]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x100b86c2
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x100b86c2
test eax, 0x100
jne 0x100b86c2
inc edi
jmp 0x100b8693
mov dword [0x10124f00], edi
test edi, edi
je 0x100b871f
lea edx, [edi + 1]
lea ecx, [ebp - 0x14]
call fcn.10033c60
push eax
mov ecx, 0x10124efc
call fcn.10033d00
lea ecx, [ebp - 0x14]
call fcn.100336a0
mov edi, dword [0x10124efc]
test edi, edi
je 0x100b871f
mov eax, dword [0x10124f00]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10124ef8]
add eax, 0xfffffffc
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, 4
mov dword [esi], edi
mov byte [0x10124f04], 1
xor eax, eax
mov dword [ebp - 4], 0xffffffff
cmp byte [0x10124f04], al
setne al
add eax, 0xd
cmp dword [0x10124ef8], 0
je 0x100b8756
mov ecx, dword [0x10124efc]
test ecx, ecx
je 0x100b8756
cmp eax, dword [0x10124f00]
ja 0x100b8756
mov dword [ecx + eax*4], 0x100b23e0
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0xf3c2c786
push eax
mov ecx, 0x1012a860
mov dword [ebp - 0x1c], 0x72e242a1
call fcn.100b09a0
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
call fcn.100b0980
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 0x100b87a4
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x10125438], eax
mov dword [ecx + 0x20], 0x100b71b0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x9ef0d03e
push eax
mov ecx, 0x1012a860
mov dword [ebp - 0x18], 0x72e242a1
call fcn.100b09a0
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.100b0980
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 0x100b87f2
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x1012543c], eax
mov dword [ecx + 0x20], 0x100b7210
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x566bd764
push eax
mov ecx, 0x1012a860
mov dword [ebp - 0x18], 0x2aafa737
call fcn.100b09a0
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.100b0980
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 0x100b8840
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 0x20]
mov dword [0x10125440], eax
mov dword [edx + 0x20], 0x100b7400
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x781aa1a4
push eax
mov ecx, 0x1012a860
mov dword [ebp - 0x18], 0x2aafa737
call fcn.100b09a0
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.100b0980
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 0x100b888e
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x10125444], eax
mov dword [ecx + 0x20], 0x100b73e0
cmp byte [0x1012a90c], 0
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
jne 0x100b8960
movaps xmm0, xmmword [0x100ea280]
xor ecx, ecx
movaps xmm2, xmmword [0x100ea470]
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x5c], 0x8c949d8c
movaps xmm0, xmmword [0x100ea290]
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x58], 0xea8cee94
mov word [ebp - 0x54], 0xac9d
movups xmm0, xmmword [ebp + ecx - 0x7c]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [ebp + ecx - 0x7c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jb 0x100b88d4
cmp ecx, 0x2a
jae 0x100b88fd
xor byte [ebp + ecx - 0x7c], 0xac
inc ecx
cmp ecx, 0x2a
jb 0x100b88f2
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x50]
call fcn.10026840
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 0x11
push eax
mov edx, 0x1012489c
lea ecx, [ebp - 0x18]
call fcn.1004f620
add esp, 4
lea ecx, [ebp - 0x50]
mov esi, dword [eax]
add esi, 0x7e
mov dword [ebp - 4], 0xffffffff
call fcn.100267f0
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 [0x1012a90c], 1
cmp byte [0x1012a90d], 0
jne 0x100b8a3f
movaps xmm0, xmmword [0x100ea2f0]
xor ecx, ecx
movaps xmm1, xmmword [0x100ea470]
movups xmmword [ebp - 0xb8], xmm0
mov dword [ebp - 0x88], 0x938c938c
movaps xmm0, xmmword [0x100ea2a0]
movups xmmword [ebp - 0xa8], xmm0
mov byte [ebp - 0x84], 0xac
movaps xmm0, xmmword [0x100ea110]
movups xmmword [ebp - 0x98], xmm0
movups xmm0, xmmword [ebp + ecx - 0xb8]
pxor xmm0, xmm1
movups xmmword [ebp + ecx - 0xb8], xmm0
add ecx, 0x10
cmp ecx, 0x30
jb 0x100b89b1
cmp ecx, 0x35
jae 0x100b89e0
xor byte [ebp + ecx - 0xb8], 0xac
inc ecx
cmp ecx, 0x35
jb 0x100b89d2
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x34]
call fcn.10026840
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 0x12
push eax
mov edx, 0x1012489c
lea ecx, [ebp - 0x80]
call fcn.1004f620
add esp, 4
lea ecx, [ebp - 0x34]
mov esi, dword [eax]
add esi, 0x24
call fcn.100267f0
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 [0x1012a90d], 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.100da7b6
mov esp, ebp
pop ebp
ret