Function at 0x1008e5c0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c798d
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x100de364]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor edx, edx
mov dword [ebp - 0x14], edx
call fcn.100b9510
push 0x30
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
push str.55_8B_EC_81_EC_________53_56_57_8B_3D_________8A
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
call fcn.1002f120
mov edx, 0x38450191
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x44]
call fcn.10054060
mov edx, dword [eax + 8]
test edx, edx
je 0x1008e638
mov edx, dword [edx + 0x50]
jmp 0x1008e63a
xor edx, edx
mov eax, dword [eax]
test eax, eax
je 0x1008e645
mov eax, dword [eax + 0x18]
jmp 0x1008e647
xor eax, eax
lea ecx, [ebp - 0x34]
push ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.10054490
add esp, 8
push 0x1019c5b0
push 0x10095900
push dword [ebp - 0x18]
call fcn.100b9650
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x1008e6a6
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008e69c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008e69c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100bc9e1
add esp, 8
push 0x2e
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
push str.57_8B_F9_8B_07_8B_80_________FF_D0_84_C0_75_02
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
call fcn.1002f120
mov edx, 0x6c5a4374
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x44]
call fcn.10054060
mov edx, dword [eax + 8]
test edx, edx
je 0x1008e6ea
mov edx, dword [edx + 0x50]
jmp 0x1008e6ec
xor edx, edx
mov eax, dword [eax]
test eax, eax
je 0x1008e6f7
mov eax, dword [eax + 0x18]
jmp 0x1008e6f9
xor eax, eax
lea ecx, [ebp - 0x34]
push ecx
push eax
lea ecx, [ebp - 0x18]
call fcn.10054490
add esp, 8
push 0
push 0x1008dee0
push dword [ebp - 0x18]
call fcn.100b9650
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x1008e755
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008e74b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008e74b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100bc9e1
add esp, 8
push 0
call fcn.100b9a70
push 0
push str.Valve001
call dword [sym.imp.USER32.dll_FindWindowA]
mov ecx, dword [0x10156fa8]
push 0x100b92a0
push 0xfffffffffffffffc
push eax
call ecx
mov edi, dword [0x10196c80]
mov dword [0x1019775c], eax
mov dword [0x101970e0], edi
mov eax, dword [edi]
mov dword [0x101970e4], eax
test eax, eax
je 0x1008e8af
xor esi, esi
nop dword [eax + eax]
mov eax, dword [0x101970e4]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008e7cf
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008e7cf
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008e7cf
test eax, 0x100
jne 0x1008e7cf
inc esi
jmp 0x1008e7a0
mov dword [0x101970ec], esi
test esi, esi
je 0x1008e8af
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x101970e8
je 0x1008e839
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x101970e8]
mov dword [0x101970e8], ecx
test eax, eax
je 0x1008e839
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 2
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008e87a
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 3
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x101970e8]
test esi, esi
je 0x1008e8af
mov eax, dword [0x101970ec]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x101970e4]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x101970f0], 1
xor eax, eax
cmp byte [0x101970f0], al
setne al
add eax, 0x29
cmp dword [0x101970e4], 0
je 0x1008e8df
mov ecx, dword [0x101970e8]
test ecx, ecx
je 0x1008e8df
cmp eax, dword [0x101970ec]
ja 0x1008e8df
mov dword [ecx + eax*4], 0x100a06d0
mov edi, dword [0x10196c68]
mov dword [0x10197108], edi
mov eax, dword [edi]
mov dword [0x1019710c], eax
test eax, eax
je 0x1008ea0f
xor esi, esi
nop dword [eax]
mov eax, dword [0x1019710c]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008e92f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008e92f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008e92f
test eax, 0x100
jne 0x1008e92f
inc esi
jmp 0x1008e900
mov dword [0x10197114], esi
test esi, esi
je 0x1008ea0f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197110
je 0x1008e999
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197110]
mov dword [0x10197110], ecx
test eax, eax
je 0x1008e999
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 4
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008e9da
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 5
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197110]
test esi, esi
je 0x1008ea0f
mov eax, dword [0x10197114]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1019710c]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x10197118], 1
xor eax, eax
cmp byte [0x10197118], al
setne al
add eax, 5
cmp dword [0x1019710c], 0
je 0x1008ea3f
mov ecx, dword [0x10197110]
test ecx, ecx
je 0x1008ea3f
cmp eax, dword [0x10197114]
ja 0x1008ea3f
mov dword [ecx + eax*4], 0x10095420
xor eax, eax
cmp byte [0x10197118], al
setne al
add eax, 6
cmp dword [0x1019710c], 0
je 0x1008ea6f
mov ecx, dword [0x10197110]
test ecx, ecx
je 0x1008ea6f
cmp eax, dword [0x10197114]
ja 0x1008ea6f
mov dword [ecx + eax*4], 0x100954d0
xor eax, eax
cmp byte [0x10197118], al
setne al
add eax, 7
cmp dword [0x1019710c], 0
je 0x1008ea9f
mov ecx, dword [0x10197110]
test ecx, ecx
je 0x1008ea9f
cmp eax, dword [0x10197114]
ja 0x1008ea9f
mov dword [ecx + eax*4], 0x100954f0
xor eax, eax
cmp byte [0x10197118], al
setne al
add eax, 0x24
cmp dword [0x1019710c], 0
je 0x1008eacf
mov ecx, dword [0x10197110]
test ecx, ecx
je 0x1008eacf
cmp eax, dword [0x10197114]
ja 0x1008eacf
mov dword [ecx + eax*4], 0x10095560
xor eax, eax
cmp byte [0x10197118], al
setne al
add eax, 0x17
cmp dword [0x1019710c], 0
je 0x1008eaff
mov ecx, dword [0x10197110]
test ecx, ecx
je 0x1008eaff
cmp eax, dword [0x10197114]
ja 0x1008eaff
mov dword [ecx + eax*4], 0x1008def0
mov edi, dword [0x10196c70]
mov dword [0x10197130], edi
mov eax, dword [edi]
mov dword [0x10197134], eax
test eax, eax
je 0x1008ec2f
xor esi, esi
nop dword [eax]
mov eax, dword [0x10197134]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008eb4f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008eb4f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008eb4f
test eax, 0x100
jne 0x1008eb4f
inc esi
jmp 0x1008eb20
mov dword [0x1019713c], esi
test esi, esi
je 0x1008ec2f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197138
je 0x1008ebb9
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197138]
mov dword [0x10197138], ecx
test eax, eax
je 0x1008ebb9
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 6
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008ebfa
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 7
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197138]
test esi, esi
je 0x1008ec2f
mov eax, dword [0x1019713c]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10197134]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x10197140], 1
xor eax, eax
cmp byte [0x10197140], al
setne al
add eax, 0x1b
cmp dword [0x10197134], 0
je 0x1008ec5f
mov ecx, dword [0x10197138]
test ecx, ecx
je 0x1008ec5f
cmp eax, dword [0x1019713c]
ja 0x1008ec5f
mov dword [ecx + eax*4], 0x10093f90
xor eax, eax
cmp byte [0x10197140], al
setne al
add eax, 0x5d
cmp dword [0x10197134], 0
je 0x1008ec8f
mov ecx, dword [0x10197138]
test ecx, ecx
je 0x1008ec8f
cmp eax, dword [0x1019713c]
ja 0x1008ec8f
mov dword [ecx + eax*4], 0x100940f0
xor eax, eax
cmp byte [0x10197140], al
setne al
add eax, 0x5a
cmp dword [0x10197134], 0
je 0x1008ecbf
mov ecx, dword [0x10197138]
test ecx, ecx
je 0x1008ecbf
cmp eax, dword [0x1019713c]
ja 0x1008ecbf
mov dword [ecx + eax*4], 0x10094330
mov edi, dword [0x10196c88]
mov dword [0x10197158], edi
mov eax, dword [edi]
mov dword [0x1019715c], eax
test eax, eax
je 0x1008edef
xor esi, esi
nop dword [eax]
mov eax, dword [0x1019715c]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008ed0f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008ed0f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008ed0f
test eax, 0x100
jne 0x1008ed0f
inc esi
jmp 0x1008ece0
mov dword [0x10197164], esi
test esi, esi
je 0x1008edef
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197160
je 0x1008ed79
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197160]
mov dword [0x10197160], ecx
test eax, eax
je 0x1008ed79
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 8
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008edba
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 9
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197160]
test esi, esi
je 0x1008edef
mov eax, dword [0x10197164]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1019715c]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x10197168], 1
xor eax, eax
cmp byte [0x10197168], al
setne al
add eax, 0xe
cmp dword [0x1019715c], 0
je 0x1008ee1f
mov ecx, dword [0x10197160]
test ecx, ecx
je 0x1008ee1f
cmp eax, dword [0x10197164]
ja 0x1008ee1f
mov dword [ecx + eax*4], 0x100a9f10
xor eax, eax
cmp byte [0x10197168], al
setne al
add eax, 0x13
cmp dword [0x1019715c], 0
je 0x1008ee4f
mov ecx, dword [0x10197160]
test ecx, ecx
je 0x1008ee4f
cmp eax, dword [0x10197164]
ja 0x1008ee4f
mov dword [ecx + eax*4], 0x100aa250
mov edi, dword [0x10196ccc]
mov dword [0x101970f4], edi
mov eax, dword [edi]
mov dword [0x101970f8], eax
test eax, eax
je 0x1008ef7f
xor esi, esi
nop dword [eax]
mov eax, dword [0x101970f8]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008ee9f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008ee9f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008ee9f
test eax, 0x100
jne 0x1008ee9f
inc esi
jmp 0x1008ee70
mov dword [0x10197100], esi
test esi, esi
je 0x1008ef7f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x101970fc
je 0x1008ef09
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x101970fc]
mov dword [0x101970fc], ecx
test eax, eax
je 0x1008ef09
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0xa
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008ef4a
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0xb
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x101970fc]
test esi, esi
je 0x1008ef7f
mov eax, dword [0x10197100]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x101970f8]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x10197104], 1
xor eax, eax
cmp byte [0x10197104], al
setne al
add eax, 0x10
cmp dword [0x101970f8], 0
je 0x1008efaf
mov ecx, dword [0x101970fc]
test ecx, ecx
je 0x1008efaf
cmp eax, dword [0x10197100]
ja 0x1008efaf
mov dword [ecx + eax*4], 0x100a0110
xor eax, eax
cmp byte [0x10197104], al
setne al
add eax, 0x11
cmp dword [0x101970f8], 0
je 0x1008efdf
mov ecx, dword [0x101970fc]
test ecx, ecx
je 0x1008efdf
cmp eax, dword [0x10197100]
ja 0x1008efdf
mov dword [ecx + eax*4], 0x100a0120
mov edx, dword [0x101970f8]
xor eax, eax
cmp byte [0x10197104], al
mov ecx, edx
setne al
add eax, 0x12
test edx, edx
je 0x1008f01f
mov esi, dword [0x101970fc]
test esi, esi
je 0x1008f01f
cmp eax, dword [0x10197100]
ja 0x1008f01f
mov dword [esi + eax*4], 0x100a0150
mov ecx, dword [0x101970f8]
cmp dword [ecx + 0x48], 0
cmovne ecx, ecx
xor eax, eax
cmp byte [0x10197104], al
setne al
add eax, 0x18
test ecx, ecx
je 0x1008f074
mov ecx, dword [0x101970fc]
test ecx, ecx
je 0x1008f074
cmp eax, dword [0x10197100]
ja 0x1008f074
mov dword [ecx + eax*4], 0x100a0280
mov eax, dword [0x101970f8]
mov edx, dword [eax + 0x60]
neg edx
sbb edx, edx
add edx, 2
mov dword [ebp - 0x14], edx
test dl, 2
je 0x1008f067
and edx, 0xfffffffd
mov dword [ebp - 0x14], edx
test dl, 1
je 0x1008f077
and edx, 0xfffffffe
mov dword [ebp - 0x14], edx
jmp 0x1008f077
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp byte [0x10197104], al
setne al
add eax, 0x2c
cmp dword [0x101970f8], 0
je 0x1008f0d8
mov ecx, dword [0x101970fc]
test ecx, ecx
je 0x1008f0d8
cmp eax, dword [0x10197100]
ja 0x1008f0d8
mov dword [ecx + eax*4], 0x100a0510
mov eax, dword [0x101970f8]
cmp dword [eax + 0xb0], 0
je 0x1008f0ba
or edx, 4
jmp 0x1008f0bd
or edx, 8
mov ecx, edx
and ecx, 0xfffffff7
test dl, 8
cmove ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], edx
test dl, 4
je 0x1008f0d8
and edx, 0xfffffffb
mov dword [ebp - 0x14], edx
mov edi, dword [0x10196c7c]
mov dword [0x1019716c], edi
mov esi, dword [edi]
mov dword [0x10197170], esi
test esi, esi
je 0x1008f21a
xor eax, eax
mov ecx, dword [esi + eax*4]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x1008f135
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008f12c
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008f12c
test eax, 0x100
jne 0x1008f12c
mov eax, dword [ebp - 0x18]
mov esi, dword [0x10197170]
inc eax
jmp 0x1008f0f6
mov esi, dword [0x10197170]
mov eax, dword [ebp - 0x18]
mov dword [0x10197178], eax
test eax, eax
je 0x1008f21a
lea edx, [eax + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197174
je 0x1008f19e
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197174]
mov dword [0x10197174], ecx
test eax, eax
je 0x1008f19e
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0xc
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008f1df
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0xd
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197174]
test esi, esi
je 0x1008f214
mov eax, dword [0x10197178]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10197170]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x1019717c], 1
mov esi, dword [0x10197170]
xor eax, eax
cmp byte [0x1019717c], al
setne al
add eax, 0x43
test esi, esi
je 0x1008f27c
mov ecx, dword [0x10197174]
test ecx, ecx
je 0x1008f27c
mov edx, dword [ebp - 0x14]
cmp eax, dword [0x10197178]
ja 0x1008f27f
mov dword [ecx + eax*4], 0x1009ca50
mov esi, dword [0x10197170]
cmp dword [esi + 0x10c], 0
je 0x1008f25c
or edx, 0x10
jmp 0x1008f25f
or edx, 0x20
mov ecx, edx
and ecx, 0xffffffdf
test dl, 0x20
cmove ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], edx
test dl, 0x10
je 0x1008f27f
and edx, 0xffffffef
mov dword [ebp - 0x14], edx
jmp 0x1008f27f
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp byte [0x1019717c], al
setne al
add eax, 0x52
test esi, esi
je 0x1008f2e2
mov ecx, dword [0x10197174]
test ecx, ecx
je 0x1008f2e2
cmp eax, dword [0x10197178]
ja 0x1008f2e2
mov dword [ecx + eax*4], 0x1009caa0
mov esi, dword [0x10197170]
cmp dword [esi + 0x148], 0
je 0x1008f2be
or edx, 0x40
jmp 0x1008f2c4
or edx, 0x80
mov ecx, edx
and ecx, 0xffffff7f
test dl, 0x80
cmove ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], edx
test dl, 0x40
je 0x1008f2e2
and edx, 0xffffffbf
mov dword [ebp - 0x14], edx
xor eax, eax
cmp byte [0x1019717c], al
setne al
add eax, 0x74
test esi, esi
je 0x1008f350
mov ecx, dword [0x10197174]
test ecx, ecx
je 0x1008f350
cmp eax, dword [0x10197178]
ja 0x1008f350
mov dword [ecx + eax*4], 0x1009cac0
mov eax, dword [0x10197170]
cmp dword [eax + 0x1d0], 0
je 0x1008f323
or edx, 0x100
jmp 0x1008f329
or edx, 0x200
mov ecx, edx
and ecx, 0xfffffdff
test edx, 0x200
cmove ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], edx
test edx, 0x100
je 0x1008f350
and edx, 0xfffffeff
mov dword [ebp - 0x14], edx
mov edi, dword [0x10196c9c]
mov dword [0x101971bc], edi
mov eax, dword [edi]
mov dword [0x101971c0], eax
test eax, eax
je 0x1008f47f
xor esi, esi
nop dword [eax]
mov eax, dword [0x101971c0]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008f39f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008f39f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008f39f
test eax, 0x100
jne 0x1008f39f
inc esi
jmp 0x1008f370
mov dword [0x101971c8], esi
test esi, esi
je 0x1008f47f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x101971c4
je 0x1008f409
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x101971c4]
mov dword [0x101971c4], ecx
test eax, eax
je 0x1008f409
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0xe
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008f44a
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0xf
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x101971c4]
test esi, esi
je 0x1008f47f
mov eax, dword [0x101971c8]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x101971c0]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x101971cc], 1
xor eax, eax
cmp byte [0x101971cc], al
setne al
add eax, 0x15
cmp dword [0x101971c0], 0
je 0x1008f4ed
mov ecx, dword [0x101971c4]
test ecx, ecx
je 0x1008f4ed
cmp eax, dword [0x101971c8]
ja 0x1008f4ed
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax*4], 0x10085090
mov eax, dword [0x101971c0]
cmp dword [eax + 0x54], 0
je 0x1008f4c5
or edx, 0x400
jmp 0x1008f4cb
or edx, 0x800
mov eax, edx
and eax, 0xfffff7ff
test edx, 0x800
cmove eax, edx
mov dword [ebp - 0x14], eax
test eax, 0x400
je 0x1008f4ed
and eax, 0xfffffbff
mov dword [ebp - 0x14], eax
mov edi, dword [0x10196c94]
mov dword [0x101971a8], edi
mov eax, dword [edi]
mov dword [0x101971ac], eax
test eax, eax
je 0x1008f61f
xor esi, esi
nop word [eax + eax]
mov eax, dword [0x101971ac]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008f53f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008f53f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008f53f
test eax, 0x100
jne 0x1008f53f
inc esi
jmp 0x1008f510
mov dword [0x101971b4], esi
test esi, esi
je 0x1008f61f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x101971b0
je 0x1008f5a9
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x101971b0]
mov dword [0x101971b0], ecx
test eax, eax
je 0x1008f5a9
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x10
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008f5ea
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x11
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x101971b0]
test esi, esi
je 0x1008f61f
mov eax, dword [0x101971b4]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x101971ac]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x101971b8], 1
xor eax, eax
cmp byte [0x101971b8], al
setne al
add eax, 9
cmp dword [0x101971ac], 0
je 0x1008f68d
mov ecx, dword [0x101971b0]
test ecx, ecx
je 0x1008f68d
cmp eax, dword [0x101971b4]
ja 0x1008f68d
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax*4], 0x100aa530
mov eax, dword [0x101971ac]
cmp dword [eax + 0x24], 0
je 0x1008f665
or edx, 0x1000
jmp 0x1008f66b
or edx, 0x2000
mov eax, edx
and eax, 0xffffdfff
test edx, 0x2000
cmove eax, edx
mov dword [ebp - 0x14], eax
test eax, 0x1000
je 0x1008f68d
and eax, 0xffffefff
mov dword [ebp - 0x14], eax
mov edi, dword [0x10196cf4]
mov dword [0x101971d0], edi
mov eax, dword [edi]
mov dword [0x101971d4], eax
test eax, eax
je 0x1008f7bf
xor esi, esi
nop word [eax + eax]
mov eax, dword [0x101971d4]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008f6df
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008f6df
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008f6df
test eax, 0x100
jne 0x1008f6df
inc esi
jmp 0x1008f6b0
mov dword [0x101971dc], esi
test esi, esi
je 0x1008f7bf
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x101971d8
je 0x1008f749
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x101971d8]
mov dword [0x101971d8], ecx
test eax, eax
je 0x1008f749
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x12
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008f78a
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x13
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x101971d8]
test esi, esi
je 0x1008f7bf
mov eax, dword [0x101971dc]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x101971d4]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x101971e0], 1
xor eax, eax
cmp byte [0x101971e0], al
setne al
add eax, 0x2b
cmp dword [0x101971d4], 0
je 0x1008f830
mov ecx, dword [0x101971d8]
test ecx, ecx
je 0x1008f830
cmp eax, dword [0x101971dc]
ja 0x1008f830
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax*4], 0x10053e90
mov eax, dword [0x101971d4]
cmp dword [eax + 0xac], 0
je 0x1008f808
or edx, 0x4000
jmp 0x1008f80e
or edx, 0x8000
mov eax, edx
and eax, 0xffff7fff
test edx, 0x8000
cmove eax, edx
mov dword [ebp - 0x14], eax
test eax, 0x4000
je 0x1008f830
and eax, 0xffffbfff
mov dword [ebp - 0x14], eax
mov edi, dword [0x10196c98]
mov dword [0x101971e4], edi
mov esi, dword [edi]
mov dword [0x101971e8], esi
test esi, esi
je 0x1008f972
xor eax, eax
mov ecx, dword [esi + eax*4]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x1008f88d
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008f884
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008f884
test eax, 0x100
jne 0x1008f884
mov eax, dword [ebp - 0x18]
mov esi, dword [0x101971e8]
inc eax
jmp 0x1008f84e
mov esi, dword [0x101971e8]
mov eax, dword [ebp - 0x18]
mov dword [0x101971f0], eax
test eax, eax
je 0x1008f972
lea edx, [eax + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x101971ec
je 0x1008f8f6
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x101971ec]
mov dword [0x101971ec], ecx
test eax, eax
je 0x1008f8f6
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x14
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008f937
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x15
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x101971ec]
test esi, esi
je 0x1008f96c
mov eax, dword [0x101971f0]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x101971e8]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x101971f4], 1
mov esi, dword [0x101971e8]
xor eax, eax
cmp byte [0x101971f4], al
setne al
add eax, 4
test esi, esi
je 0x1008f9e3
mov ecx, dword [0x101971ec]
test ecx, ecx
je 0x1008f9e3
mov edx, dword [ebp - 0x14]
cmp eax, dword [0x101971f0]
ja 0x1008f9e6
mov dword [ecx + eax*4], 0x100a5e10
mov esi, dword [0x101971e8]
cmp dword [esi + 0x10], 0
je 0x1008f9b4
or edx, 0x10000
jmp 0x1008f9ba
or edx, 0x20000
mov ecx, edx
and ecx, 0xfffdffff
test edx, 0x20000
cmove ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], edx
test edx, 0x10000
je 0x1008f9e6
and edx, 0xfffeffff
mov dword [ebp - 0x14], edx
jmp 0x1008f9e6
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp byte [0x101971f4], al
setne al
add eax, 6
test esi, esi
je 0x1008fa52
mov ecx, dword [0x101971ec]
test ecx, ecx
je 0x1008fa52
cmp eax, dword [0x101971f0]
ja 0x1008fa52
mov dword [ecx + eax*4], 0x100a5fd0
mov esi, dword [0x101971e8]
cmp dword [esi + 0x18], 0
je 0x1008fa25
or edx, 0x40000
jmp 0x1008fa2b
or edx, 0x80000
mov ecx, edx
and ecx, 0xfff7ffff
test edx, 0x80000
cmove ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], edx
test edx, 0x40000
je 0x1008fa52
and edx, 0xfffbffff
mov dword [ebp - 0x14], edx
xor eax, eax
cmp byte [0x101971f4], al
setne al
add eax, 0x27
test esi, esi
je 0x1008fac1
mov ecx, dword [0x101971ec]
test ecx, ecx
je 0x1008fac1
cmp eax, dword [0x101971f0]
ja 0x1008fac1
mov dword [ecx + eax*4], 0x100a6000
mov esi, dword [0x101971e8]
cmp dword [esi + 0x9c], 0
je 0x1008fa94
or edx, 0x100000
jmp 0x1008fa9a
or edx, 0x200000
mov ecx, edx
and ecx, 0xffdfffff
test edx, 0x200000
cmove ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], edx
test edx, 0x100000
je 0x1008fac1
and edx, 0xffefffff
mov dword [ebp - 0x14], edx
xor eax, eax
cmp byte [0x101971f4], al
setne al
add eax, 0x28
test esi, esi
je 0x1008fb2f
mov ecx, dword [0x101971ec]
test ecx, ecx
je 0x1008fb2f
cmp eax, dword [0x101971f0]
ja 0x1008fb2f
mov dword [ecx + eax*4], 0x100a6040
mov eax, dword [0x101971e8]
cmp dword [eax + 0xa0], 0
je 0x1008fb02
or edx, 0x400000
jmp 0x1008fb08
or edx, 0x800000
mov ecx, edx
and ecx, 0xff7fffff
test edx, 0x800000
cmove ecx, edx
mov edx, ecx
mov dword [ebp - 0x14], edx
test edx, 0x400000
je 0x1008fb2f
and edx, 0xffbfffff
mov dword [ebp - 0x14], edx
mov edi, dword [0x10196cbc]
mov dword [0x101971f8], edi
mov eax, dword [edi]
mov dword [0x101971fc], eax
test eax, eax
je 0x1008fc5f
xor esi, esi
nop dword [eax]
mov eax, dword [0x101971fc]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008fb7f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008fb7f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008fb7f
test eax, 0x100
jne 0x1008fb7f
inc esi
jmp 0x1008fb50
mov dword [0x10197204], esi
test esi, esi
je 0x1008fc5f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197200
je 0x1008fbe9
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197200]
mov dword [0x10197200], ecx
test eax, eax
je 0x1008fbe9
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x16
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008fc2a
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x17
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197200]
test esi, esi
je 0x1008fc5f
mov eax, dword [0x10197204]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x101971fc]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x10197208], 1
xor eax, eax
cmp byte [0x10197208], al
setne al
add eax, 0xd
cmp dword [0x101971fc], 0
je 0x1008fccd
mov ecx, dword [0x10197200]
test ecx, ecx
je 0x1008fccd
cmp eax, dword [0x10197204]
ja 0x1008fccd
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax*4], 0x10053860
mov eax, dword [0x101971fc]
cmp dword [eax + 0x34], 0
je 0x1008fca5
or edx, 0x1000000
jmp 0x1008fcab
or edx, 0x2000000
mov eax, edx
and eax, 0xfdffffff
test edx, 0x2000000
cmove eax, edx
mov dword [ebp - 0x14], eax
test eax, 0x1000000
je 0x1008fccd
and eax, 0xfeffffff
mov dword [ebp - 0x14], eax
mov edi, dword [0x10196ca0]
mov dword [0x1019720c], edi
mov eax, dword [edi]
mov dword [0x10197210], eax
test eax, eax
je 0x1008fdff
xor esi, esi
nop word [eax + eax]
mov eax, dword [0x10197210]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008fd1f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008fd1f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008fd1f
test eax, 0x100
jne 0x1008fd1f
inc esi
jmp 0x1008fcf0
mov dword [0x10197218], esi
test esi, esi
je 0x1008fdff
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197214
je 0x1008fd89
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197214]
mov dword [0x10197214], ecx
test eax, eax
je 0x1008fd89
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x18
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008fdca
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x19
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197214]
test esi, esi
je 0x1008fdff
mov eax, dword [0x10197218]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10197210]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x1019721c], 1
xor eax, eax
cmp byte [0x1019721c], al
setne al
add eax, 0x15
cmp dword [0x10197210], 0
je 0x1008fe6d
mov ecx, dword [0x10197214]
test ecx, ecx
je 0x1008fe6d
cmp eax, dword [0x10197218]
ja 0x1008fe6d
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax*4], 0x10053b80
mov eax, dword [0x10197210]
cmp dword [eax + 0x54], 0
je 0x1008fe45
or edx, 0x4000000
jmp 0x1008fe4b
or edx, 0x8000000
mov eax, edx
and eax, 0xf7ffffff
test edx, 0x8000000
cmove eax, edx
mov dword [ebp - 0x14], eax
test eax, 0x4000000
je 0x1008fe6d
and eax, 0xfbffffff
mov dword [ebp - 0x14], eax
mov edi, dword [0x10196df8]
mov dword [0x10197220], edi
mov eax, dword [edi]
mov dword [0x10197224], eax
test eax, eax
je 0x1008ff9f
xor esi, esi
nop word [eax + eax]
mov eax, dword [0x10197224]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1008febf
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1008febf
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1008febf
test eax, 0x100
jne 0x1008febf
inc esi
jmp 0x1008fe90
mov dword [0x1019722c], esi
test esi, esi
je 0x1008ff9f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197228
je 0x1008ff29
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197228]
mov dword [0x10197228], ecx
test eax, eax
je 0x1008ff29
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x1a
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1008ff6a
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x1b
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197228]
test esi, esi
je 0x1008ff9f
mov eax, dword [0x1019722c]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10197224]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x10197230], 1
xor eax, eax
cmp byte [0x10197230], al
setne al
add eax, 7
cmp dword [0x10197224], 0
je 0x1009000d
mov ecx, dword [0x10197228]
test ecx, ecx
je 0x1009000d
cmp eax, dword [0x1019722c]
ja 0x1009000d
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax*4], 0x10052fb0
mov eax, dword [0x10197224]
cmp dword [eax + 0x1c], 0
je 0x1008ffe5
or edx, 0x10000000
jmp 0x1008ffeb
or edx, 0x20000000
mov eax, edx
and eax, 0xdfffffff
test edx, 0x20000000
cmove eax, edx
mov dword [ebp - 0x14], eax
test eax, 0x10000000
je 0x1009000d
and eax, 0xefffffff
mov dword [ebp - 0x14], eax
mov edi, dword [0x10196d08]
mov dword [0x1019711c], edi
mov eax, dword [edi]
mov dword [0x10197120], eax
test eax, eax
je 0x1009013f
xor esi, esi
nop word [eax + eax]
mov eax, dword [0x10197120]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1009005f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1009005f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1009005f
test eax, 0x100
jne 0x1009005f
inc esi
jmp 0x10090030
mov dword [0x10197128], esi
test esi, esi
je 0x1009013f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197124
je 0x100900c9
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197124]
mov dword [0x10197124], ecx
test eax, eax
je 0x100900c9
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x1c
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1009010a
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x1d
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197124]
test esi, esi
je 0x1009013f
mov eax, dword [0x10197128]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10197120]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x1019712c], 1
mov edx, dword [0x10197120]
xor eax, eax
cmp byte [0x1019712c], al
mov ecx, edx
setne al
add eax, 0x18
test edx, edx
je 0x10090194
mov esi, dword [0x10197124]
test esi, esi
je 0x10090194
cmp eax, dword [0x10197128]
ja 0x10090194
mov edx, dword [ebp - 0x14]
mov dword [esi + eax*4], 0x1008d560
mov ecx, dword [0x10197120]
cmp dword [ecx + 0x60], 0
je 0x10090189
or edx, 0x40000000
jmp 0x1009018f
or edx, 0x80000000
test edx, edx
cmovs ecx, ecx
xor eax, eax
cmp byte [0x1019712c], al
setne al
add eax, 0x24
test ecx, ecx
je 0x100901bf
mov ecx, dword [0x10197124]
test ecx, ecx
je 0x100901bf
cmp eax, dword [0x10197128]
ja 0x100901bf
mov dword [ecx + eax*4], 0x1003f310
push 0x100de388
call dword [0x10196e08]
mov edi, dword [0x10196d58]
mov dword [0x10197748], edi
mov eax, dword [edi]
mov dword [0x1019774c], eax
test eax, eax
je 0x100902ff
xor esi, esi
nop word [eax + eax]
mov eax, dword [0x1019774c]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1009021f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1009021f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1009021f
test eax, 0x100
jne 0x1009021f
inc esi
jmp 0x100901f0
mov dword [0x10197754], esi
test esi, esi
je 0x100902ff
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x10197750
je 0x10090289
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x10197750]
mov dword [0x10197750], ecx
test eax, eax
je 0x10090289
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x1e
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x100902ca
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x1f
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10197750]
test esi, esi
je 0x100902ff
mov eax, dword [0x10197754]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x1019774c]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x10197758], 1
xor eax, eax
cmp byte [0x10197758], al
setne al
add eax, 0xd
cmp dword [0x1019774c], 0
je 0x1009032f
mov ecx, dword [0x10197750]
test ecx, ecx
je 0x1009032f
cmp eax, dword [0x10197754]
ja 0x1009032f
mov dword [ecx + eax*4], 0x10084d10
mov edi, dword [0x10196d5c]
mov dword [0x10197234], edi
mov eax, dword [edi]
mov dword [0x10197238], eax
test eax, eax
je 0x1009045f
xor esi, esi
nop dword [eax]
mov eax, dword [0x10197238]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x1009037f
mov eax, dword [0x10156fa4]
lea edx, [ebp - 0x38]
push 0x1c
push edx
push ecx
call eax
test eax, eax
je 0x1009037f
mov eax, dword [ebp - 0x24]
test al, 1
jne 0x1009037f
test eax, 0x100
jne 0x1009037f
inc esi
jmp 0x10090350
mov dword [0x10197240], esi
test esi, esi
je 0x1009045f
lea edx, [esi + 1]
lea ecx, [ebp - 0x1c]
call fcn.1003df80
cmp eax, 0x1019723c
je 0x100903e9
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [0x1019723c]
mov dword [0x1019723c], ecx
test eax, eax
je 0x100903e9
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x20
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov eax, dword [esi]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1009042a
push fcn.10023fb0
lea esi, [eax - 4]
mov dword [ebp - 4], 0x21
push dword [esi]
push 4
push eax
call fcn.100bc5b2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 4]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.100bc574
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x1019723c]
test esi, esi
je 0x1009045f
mov eax, dword [0x10197240]
lea eax, [eax*4 + 4]
push eax
mov eax, dword [0x10197238]
add eax, 0xfffffffc
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 4
mov dword [edi], esi
mov byte [0x10197244], 1
xor eax, eax
cmp byte [0x10197244], al
setne al
add eax, 0xd
cmp dword [0x10197238], 0
je 0x1009048f
mov ecx, dword [0x1019723c]
test ecx, ecx
je 0x1009048f
cmp eax, dword [0x10197240]
ja 0x1009048f
mov dword [ecx + eax*4], 0x10084e60
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0xf3c2c786
push eax
mov ecx, 0x1019c4b0
mov dword [ebp - 0x1c], 0x72e242a1
call fcn.10083690
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.10083670
movq xmm0, qword [eax]
movq qword [ebp - 0x44], xmm0
cmp byte [ebp - 0x44], 0
jne 0x100904d7
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x10197778], eax
mov dword [ecx + 0x20], 0x1008d2a0
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0x9ef0d03e
push eax
mov ecx, 0x1019c4b0
mov dword [ebp - 0x1c], 0x72e242a1
call fcn.10083690
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.10083670
movq xmm0, qword [eax]
movq qword [ebp - 0x44], xmm0
cmp byte [ebp - 0x44], 0
jne 0x1009051f
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x1019777c], eax
mov dword [ecx + 0x20], 0x1008d300
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0x566bd764
push eax
mov ecx, 0x1019c4b0
mov dword [ebp - 0x1c], 0x2aafa737
call fcn.10083690
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.10083670
movq xmm0, qword [eax]
movq qword [ebp - 0x44], xmm0
cmp byte [ebp - 0x44], 0
jne 0x10090567
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 0x20]
mov dword [0x10197780], eax
mov dword [edx + 0x20], 0x1008ddc0
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0x781aa1a4
push eax
mov ecx, 0x1019c4b0
mov dword [ebp - 0x1c], 0x2aafa737
call fcn.10083690
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.10083670
movq xmm0, qword [eax]
movq qword [ebp - 0x44], xmm0
cmp byte [ebp - 0x44], 0
jne 0x100905af
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x20]
mov dword [0x10197784], eax
mov dword [ecx + 0x20], 0x1008dda0
cmp byte [0x1019c5ac], 0
jne 0x10090681
push 0x29
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
push str.55_8B_EC_53_8B_5D_08_56_57_FF_75_18_8B_F1
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
call fcn.1002f120
mov dword [ebp - 4], 0x22
mov eax, dword [0x10196c34]
test eax, eax
je 0x100905f5
mov edx, dword [eax + 0x50]
jmp 0x100905f7
xor edx, edx
mov eax, dword [0x10196c2c]
test eax, eax
je 0x10090605
mov eax, dword [eax + 0x18]
jmp 0x10090607
xor eax, eax
lea ecx, [ebp - 0x34]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.10054490
mov edi, dword [ebp - 0x1c]
add esp, 8
mov ecx, dword [ebp - 0x20]
add edi, 0x7e
cmp ecx, 0x10
jb 0x10090653
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10090649
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10090649
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100bc9e1
add esp, 8
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x18]
push eax
push 0x40
push 1
push edi
mov dword [ebp - 0x18], 0
call esi
lea eax, [ebp - 0x18]
mov byte [edi], 0x3f
push eax
push dword [ebp - 0x18]
push 1
push edi
call esi
mov byte [0x1019c5ac], 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.100bc566
mov esp, ebp
pop ebp
ret