Function at 0x435aa0
Capabilities:
Check if file exists
Check mutex on windows
Create thread
Delete file
Encode data using xor
Get file attributes
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x473593
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x4d100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x138], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x140], 0
mov edi, dword [ecx]
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x130], eax
mov eax, edi
mov esi, dword [edi + 4]
mov dword [ebp - 0x16c], edx
mov dword [ebp - 0x150], edi
mov dword [ebp - 0x158], eax
cmp byte [esi + 0xd], 0
jne 0x435b42
mov edi, edx
lea eax, [esi + 0x10]
push edi
push eax
call fcn.00425ae0
test al, al
je 0x435b2c
mov esi, dword [esi + 8]
mov eax, dword [ebp - 0x158]
jmp 0x435b36
mov eax, esi
mov esi, dword [esi]
mov dword [ebp - 0x158], eax
cmp byte [esi + 0xd], 0
je 0x435b13
mov edi, dword [ebp - 0x150]
cmp byte [eax + 0xd], 0
jne 0x437946
mov esi, dword [ebp - 0x16c]
add eax, 0x10
push eax
push esi
call fcn.00425ae0
test al, al
jne 0x437946
mov eax, dword [ebp - 0x158]
cmp eax, edi
je 0x437946
mov ecx, dword [ebp - 0x138]
lea edi, [eax + 0x10]
lea eax, [edi + 0x18]
push eax
push esi
lea eax, [ebp - 0x80]
push eax
call fcn.00435010
mov dword [ebp - 4], 0
mov edx, esi
cmp dword [esi + 0x14], 0x10
jb 0x435b9a
mov edx, dword [esi]
lea ecx, [ebp - 0x1a0]
call fcn.00417b40
mov esi, 4
mov dword [ebp - 0x140], esi
mov byte [ebp - 4], 1
lea eax, [ebp - 0x1a0]
cmp dword [ebp - 0x18c], 8
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 0x1a4]
cmovae eax, dword [ebp - 0x1a0]
push eax
call fcn.004185a0
add esp, 4
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x18c]
cmp edx, 8
jb 0x435c1e
mov ecx, dword [ebp - 0x1a0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x435c14
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379d2
push edx
push ecx
call fcn.00451449
add esp, 8
lea eax, [edi + 0x30]
mov edx, eax
mov dword [ebp - 0x134], eax
lea ecx, [ebp - 0x2c]
call fcn.00432f50
mov edx, dword [edi + 0x68]
mov ecx, 1
mov byte [ebp - 0x129], al
mov dword [ebp - 0x150], edx
mov byte [ebp - 0x12a], 1
test al, al
jne 0x435d09
mov eax, dword [ebp - 0x138]
cmp byte [eax + 0x10c], 0
jne 0x435e7b
test edx, edx
je 0x435cce
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x435e7b
test eax, 0x400
je 0x435e7b
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
push 0
cmovae eax, dword [ebp - 0x2c]
push 0x2200000
push 3
push 0
push 3
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x435e7b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x129], 1
jmp 0x435cf7
cmp dword [edi + 0x44], 0x10
lea edx, [edi + 0x30]
jb 0x435cd9
mov edx, dword [edx]
cmp dword [ebp - 0x18], 8
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
call fcn.0041d120
mov byte [ebp - 0x129], al
test al, al
je 0x435e7b
lea eax, [edi + 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00432530
mov ecx, 1
cmp dword [ebp - 0x130], 0
je 0x435e6e
mov eax, dword [ebp - 0x138]
add eax, 0xf4
mov byte [ebp - 0x12a], 0
mov dword [ebp - 0x14c], eax
mov byte [ebp - 0x148], 1
mov eax, dword [eax]
mov esi, dword [ebp - 0x14c]
test eax, eax
jne 0x435d57
mov eax, ecx
lock xadd dword [esi], eax
test eax, eax
jne 0x435d57
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi + 4], eax
push 0xffffffffffffffff
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov byte [ebp - 4], 4
mov esi, edi
mov eax, dword [ebp - 0x138]
add eax, 0xd4
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0x14], eax
jb 0x435d7e
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [edi + 0x10], ecx
jbe 0x435da5
nop word [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [edi + 0x10]
jb 0x435d90
mov eax, dword [ebp - 0x14]
push edx
push edi
lea ecx, [ebp - 0x160]
push ecx
mov ecx, eax
call fcn.004227b0
mov eax, dword [eax + 4]
test eax, eax
je 0x435dd2
mov ecx, dword [ebp - 0x138]
cmp eax, dword [ecx + 0xd8]
je 0x435dd2
mov esi, dword [ebp - 0x140]
jmp 0x435e42
push edi
lea ecx, [ebp - 0x360]
call fcn.00411890
mov byte [ebp - 0x348], 1
mov esi, 0xc
lea eax, [ebp - 0x360]
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.0043f130
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x34c]
cmp edx, 0x10
jb 0x435e42
mov ecx, dword [ebp - 0x360]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x435e38
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379d2
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x14c]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp - 0x130]
push 0
push dword [edi + 0x4c]
push dword [edi + 0x48]
mov eax, dword [ecx]
push dword [edi + 0x54]
push dword [edi + 0x50]
call dword [eax + 4]
cmp byte [ebp - 0x129], 0
jne 0x4377ac
cmp dword [edi + 0x44], 0x10
lea edx, [edi + 0x30]
jb 0x435e86
mov edx, dword [edx]
lea ecx, [ebp - 0x3ac]
call fcn.00417b40
or esi, 0x10
mov byte [ebp - 4], 6
mov eax, 0x7ffffffe
mov ecx, dword [ebp - 0x1c]
sub eax, ecx
cmp eax, 4
jb 0x437973
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
push 4
cmovae eax, dword [ebp - 0x2c]
push 0x4c92a0
push ecx
push eax
push ecx
push dword [ebp - 0x134]
lea ecx, [ebp - 0x394]
call fcn.00413db0
or esi, 0x20
lea eax, [ebp - 0x3ac]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x394]
push eax
push dword [ebp - 0x134]
lea ecx, [ebp - 0x224]
call fcn.00413c00
or esi, 0x40
mov byte [ebp - 4], 8
lea edx, [ebp - 0x224]
cmp dword [ebp - 0x210], 8
mov ecx, 0x48
cmovae edx, dword [ebp - 0x224]
call fcn.00441530
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x210]
cmp edx, 8
jb 0x435f60
mov ecx, dword [ebp - 0x224]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x435f56
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437978
push edx
push ecx
call fcn.00451449
add esp, 8
xor eax, eax
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x380]
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 7
mov word [ebp - 0x224], ax
cmp edx, 8
jb 0x435fc1
mov ecx, dword [ebp - 0x394]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x435fb7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437978
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x398]
cmp edx, 8
jb 0x436005
mov ecx, dword [ebp - 0x3ac]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x435ffb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437978
push edx
push ecx
call fcn.00451449
add esp, 8
cmp dword [ebp - 0x18], 8
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x23c]
cmovae edx, dword [ebp - 0x2c]
call fcn.00418480
or esi, 0x80
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x23c]
cmp dword [ebp - 0x228], 8
cmovae ecx, dword [ebp - 0x23c]
call fcn.00418880
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x228]
cmp edx, 8
jb 0x436082
mov ecx, dword [ebp - 0x23c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436078
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43797d
push edx
push ecx
call fcn.00451449
add esp, 8
xor eax, eax
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 7
mov word [ebp - 0x23c], ax
cmp dword [ebp - 0x150], eax
je 0x436289
cmp dword [edi + 0x6c], 0x10
lea edx, [edi + 0x58]
jb 0x4360b6
mov edx, dword [edx]
lea ecx, [ebp - 0x188]
call fcn.00417b40
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x188]
cmp dword [ebp - 0x174], 8
lea ecx, [ebp - 0x50]
cmovae edx, dword [ebp - 0x188]
call fcn.00418090
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x174]
cmp edx, 8
jb 0x436125
mov ecx, dword [ebp - 0x188]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43611b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437982
push edx
push ecx
call fcn.00451449
add esp, 8
mov esi, dword [sym.imp.KERNEL32.dll_CreateSymbolicLinkW]
lea ecx, [ebp - 0x50]
xor eax, eax
mov dword [ebp - 0x178], 0
cmp dword [ebp - 0x3c], 8
mov word [ebp - 0x188], ax
lea eax, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x50]
cmp dword [ebp - 0x18], 8
push 0
cmovae eax, dword [ebp - 0x2c]
push ecx
push eax
mov dword [ebp - 0x174], 7
call esi
test al, al
setne byte [ebp - 0x129]
test al, al
jne 0x4361b0
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x3c], 8
lea ecx, [ebp - 0x50]
push 0
cmovae ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 8
push ecx
cmovae eax, dword [ebp - 0x2c]
push eax
call esi
test al, al
setne byte [ebp - 0x129]
test al, al
je 0x436248
mov ecx, dword [ebp - 0x130]
push 0
push dword [edi + 0x4c]
push dword [edi + 0x48]
mov eax, dword [ecx]
push dword [edi + 0x54]
push dword [edi + 0x50]
call dword [eax + 4]
mov edx, dword [ebp - 0x16c]
cmp dword [edx + 0x14], 0x10
jb 0x4361d7
mov edx, dword [edx]
lea ecx, [ebp - 0x1a0]
call fcn.00417b40
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x1a0]
cmp dword [ebp - 0x18c], 8
mov ecx, 0x53
cmovae edx, dword [ebp - 0x1a0]
call fcn.00441530
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x18c]
cmp edx, 8
jb 0x436248
mov ecx, dword [ebp - 0x1a0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43623e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437987
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x3c]
cmp edx, 8
jb 0x4375f7
mov ecx, dword [ebp - 0x50]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4375ed
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43798c
jmp 0x4375ed
mov eax, dword [ebp - 0x138]
cmp byte [eax + 0x10d], 0
je 0x437229
mov eax, dword [ebp - 0x130]
test eax, eax
je 0x436318
cmp byte [0x4d3333], 0
jne 0x436318
mov eax, dword [eax]
mov ecx, dword [0x4d2ea0]
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x4362fa
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub ecx, eax
mov dword [ebp - 0x15c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0xb
jb 0x4362fa
mov eax, dword [ebp - 0x15c]
add eax, 0xf0
cmp dword [eax + 0x14], 8
jb 0x4362ff
mov eax, dword [eax]
jmp 0x4362ff
mov eax, 0x47c32c
mov ecx, dword [ebp - 0x130]
push eax
push 0
push 0
push 0
push 0
call dword [ebp - 0x14]
mov byte [0x4d3333], 1
push 0x78
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.00452b60
add esp, 0xc
lea ecx, [ebp - 0x128]
push dword [ebp - 0x130]
call fcn.004199f0
mov byte [ebp - 4], 0xe
mov eax, 0x7ffffffe
mov ecx, dword [ebp - 0x1c]
sub eax, ecx
cmp eax, 7
jb 0x437991
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
push 7
cmovae eax, dword [ebp - 0x2c]
push str..bundle
push ecx
push eax
push ecx
push dword [ebp - 0x134]
lea ecx, [ebp - 0x68]
call fcn.00413db0
or esi, 0x400
mov dword [ebp - 0x140], esi
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
movq qword [ebp - 0x38], xmm0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0xc8], 0
je 0x4364dc
cmp dword [eax + 0xcc], 0x10
lea edx, [eax + 0xb8]
jb 0x4363ce
mov edx, dword [edx]
lea ecx, [ebp - 0x32c]
call fcn.00417b40
or esi, 0x800
mov dword [ebp - 0x140], esi
movups xmm0, xmmword [ebp - 0x32c]
mov edx, dword [str.X_Twitch_CDN_Authorization]
xor eax, eax
mov dword [ebp - 0x20c], edx
movups xmmword [ebp - 0x168], xmm0
mov word [ebp - 0x32c], ax
movups xmmword [ebp - 0x208], xmm0
movq xmm0, qword [ebp - 0x31c]
movq qword [ebp - 0x14c], xmm0
movq qword [ebp - 0x1f8], xmm0
mov dword [ebp - 0x31c], 0
mov dword [ebp - 0x318], 7
mov ecx, edx
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x258], 7
mov word [ebp - 0x26c], ax
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x436461
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x26c]
call fcn.00411b40
movups xmm0, xmmword [ebp - 0x168]
xor eax, eax
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 7
movups xmmword [ebp - 0x254], xmm0
mov word [ebp - 0x208], ax
movq xmm0, qword [ebp - 0x14c]
movq qword [ebp - 0x244], xmm0
lea eax, [ebp - 0x26c]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x38]
call fcn.00420340
lea ecx, [ebp - 0x26c]
call fcn.00420120
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], 0x14
mov ecx, 1
add eax, 0x110
lock xadd dword [eax], ecx
cmp dword [ebp - 0x54], 8
lea eax, [ebp - 0x128]
push eax
lea edx, [ebp - 0x68]
cmovae edx, dword [ebp - 0x68]
lea eax, [ebp - 0x38]
cmp dword [ebp - 0x6c], 8
lea ecx, [ebp - 0x80]
push eax
cmovae ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x14]
push eax
call fcn.0041b6c0
add esp, 0xc
mov byte [ebp - 0x129], al
cmp dword [edi + 0x54], 0
jl 0x43655f
jg 0x436536
cmp dword [edi + 0x50], 0
jbe 0x43655f
cmp dword [ebp - 0x54], 8
lea ecx, [ebp - 0x68]
cmovae ecx, dword [ebp - 0x68]
call fcn.0041d6c0
cmp eax, dword [edi + 0x50]
jne 0x436550
cmp edx, dword [edi + 0x54]
je 0x436559
mov byte [ebp - 0x129], 0
jmp 0x436563
mov al, byte [ebp - 0x129]
test al, al
jne 0x4365a2
mov esi, dword [ebp - 0x130]
test esi, esi
je 0x4365a2
mov eax, dword [esi]
mov ecx, dword [ebp - 0x118]
neg ecx
push 0
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x114]
adc eax, 0
neg eax
push eax
mov eax, dword [ebp - 0x11c]
push ecx
mov ecx, dword [ebp - 0x120]
neg ecx
adc eax, 0
neg eax
push eax
push ecx
mov ecx, esi
call edx
cmp byte [ebp - 0x129], 0
mov eax, str.__fail
mov edx, str.__ok
mov dword [ebp - 0x50], 0
cmove edx, eax
mov dword [ebp - 0x40], 0
mov ecx, edx
mov dword [ebp - 0x3c], 7
xor eax, eax
mov word [ebp - 0x50], ax
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4365d6
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00411b40
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1d8]
push dword [edi + 0x54]
push dword [edi + 0x50]
call fcn.00429890
mov esi, eax
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x1c0]
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
call fcn.00429890
add esp, 0x10
push 2
push 0x4c92ac
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x17
call fcn.00413fc0
or dword [ebp - 0x140], 0x10000
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2b4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2a4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push 0x2f
lea ecx, [ebp - 0x2b4]
mov byte [ebp - 4], 0x18
call fcn.00411a20
movups xmm0, xmmword [ebp - 0x2b4]
or dword [ebp - 0x140], 0x20000
xor eax, eax
mov word [ebp - 0x2b4], ax
movups xmmword [ebp - 0x344], xmm0
movq xmm0, qword [ebp - 0x2a4]
movq qword [ebp - 0x334], xmm0
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x2a0], 7
push esi
lea eax, [ebp - 0x344]
mov byte [ebp - 4], 0x19
push eax
push dword [ebp - 0x134]
lea ecx, [ebp - 0x98]
call fcn.00413c00
mov esi, dword [ebp - 0x140]
or esi, 0x40000
mov dword [ebp - 0x140], esi
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x330]
cmp edx, 8
jb 0x436734
mov ecx, dword [ebp - 0x344]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43672a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437996
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x1ac]
cmp edx, 8
jb 0x436778
mov ecx, dword [ebp - 0x1c0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43676e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437996
push edx
push ecx
call fcn.00451449
add esp, 8
xor eax, eax
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 7
mov word [ebp - 0x1c0], ax
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x1c4]
cmp edx, 8
jb 0x4367d9
mov ecx, dword [ebp - 0x1d8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4367cf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437996
push edx
push ecx
call fcn.00451449
add esp, 8
xor eax, eax
mov dword [ebp - 0x1c8], 0
mov word [ebp - 0x1d8], ax
mov eax, dword [ebp - 0x14]
test eax, eax
mov dword [ebp - 0x1c4], 7
setne byte [ebp - 0x12a]
mov dword [ebp - 0x15c], eax
test eax, eax
je 0x4369d3
push dword [eax + 4]
lea ecx, [ebp - 0x3f8]
push dword [eax]
call fcn.00429890
add esp, 8
mov esi, eax
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x284]
push 1
xor eax, eax
mov dword [ebp - 0x284], 0
push 0x4c92b4
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x270], 7
mov word [ebp - 0x284], ax
call fcn.00411b40
push esi
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 0x20
push eax
push dword [ebp - 0x134]
lea ecx, [ebp - 0x2cc]
call fcn.00413c00
mov esi, dword [ebp - 0x140]
or esi, 0x200000
push 0x5d
lea ecx, [ebp - 0x2cc]
mov byte [ebp - 4], 0x21
call fcn.00411a20
movups xmm1, xmmword [ebp - 0x2cc]
xor eax, eax
or esi, 0x400000
movq xmm0, qword [ebp - 0x2bc]
movups xmmword [ebp - 0x2e4], xmm1
mov dword [ebp - 0x2bc], 0
movq qword [ebp - 0x2d4], xmm0
mov dword [ebp - 0x2b8], 7
mov word [ebp - 0x2cc], ax
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x2e4]
cmp dword [ebp - 0x2d0], 8
push dword [ebp - 0x2d4]
movd eax, xmm1
cmovae ecx, eax
push ecx
lea ecx, [ebp - 0x98]
call fcn.00412220
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x2d0]
cmp edx, 8
jb 0x43694b
mov ecx, dword [ebp - 0x2e4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436941
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43799b
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x270]
cmp edx, 8
jb 0x43698f
mov ecx, dword [ebp - 0x284]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436985
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43799b
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x3e4]
cmp edx, 8
jb 0x4369d3
mov ecx, dword [ebp - 0x3f8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4369c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43799b
push edx
push ecx
call fcn.00451449
add esp, 8
push 0x29
lea ecx, [ebp - 0x98]
call fcn.00411a20
cmp dword [ebp - 0x84], 8
lea eax, [ebp - 0x98]
push dword [ebp - 0x88]
cmovae eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x50]
push eax
call fcn.00412220
cmp byte [ebp - 0x129], 0
jne 0x436ba2
cmp byte [ebp - 0x12a], 0
je 0x436ba2
mov eax, dword [ebp - 0x15c]
cmp dword [eax + 0x1c], 0
je 0x436ba2
cmp dword [eax + 0x20], 0x10
lea edx, [eax + 0xc]
jb 0x436a38
mov edx, dword [edx]
lea ecx, [ebp - 0x3c4]
call fcn.00417b40
or esi, 0x800000
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x29c]
push 4
xor eax, eax
mov dword [ebp - 0x29c], 0
push 0x4c8f5c
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x288], 7
mov word [ebp - 0x29c], ax
call fcn.00411b40
lea eax, [ebp - 0x3c4]
mov byte [ebp - 4], 0x24
push eax
lea eax, [ebp - 0x29c]
push eax
push dword [ebp - 0x134]
lea ecx, [ebp - 0x2fc]
call fcn.00413c00
or esi, 0x1000000
mov byte [ebp - 4], 0x25
lea eax, [ebp - 0x2fc]
cmp dword [ebp - 0x2e8], 8
lea ecx, [ebp - 0x50]
push dword [ebp - 0x2ec]
cmovae eax, dword [ebp - 0x2fc]
push eax
call fcn.00412220
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x2e8]
cmp edx, 8
jb 0x436b1a
mov ecx, dword [ebp - 0x2fc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436b10
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379b9
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x288]
cmp edx, 8
jb 0x436b5e
mov ecx, dword [ebp - 0x29c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436b54
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379b9
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x3b0]
cmp edx, 8
jb 0x436ba2
mov ecx, dword [ebp - 0x3c4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436b98
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379b9
push edx
push ecx
call fcn.00451449
add esp, 8
mov edx, dword [ebp - 0x70]
mov eax, 0x7ffffffe
sub eax, edx
cmp eax, dword [ebp - 0x40]
jb 0x4379a0
cmp dword [ebp - 0x6c], 8
lea ecx, [ebp - 0x80]
push dword [ebp - 0x40]
cmovae ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 8
cmovae eax, dword [ebp - 0x50]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x134]
lea ecx, [ebp - 0x1f0]
call fcn.00413db0
or esi, 0x2000000
mov dword [ebp - 0x140], esi
mov byte [ebp - 4], 0x26
lea edx, [ebp - 0x1f0]
cmp dword [ebp - 0x1dc], 8
mov ecx, 0x4e
cmovae edx, dword [ebp - 0x1f0]
call fcn.00441530
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x1dc]
cmp edx, 8
jb 0x436c55
mov ecx, dword [ebp - 0x1f0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436c4b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379a5
push edx
push ecx
call fcn.00451449
add esp, 8
mov esi, dword [ebp - 0x15c]
mov dword [ebp - 0x14], 0
test esi, esi
je 0x436c78
mov ecx, esi
call fcn.0041b480
push 0x60
push esi
call fcn.00451449
add esp, 8
cmp byte [ebp - 0x129], 0
je 0x4370de
mov eax, dword [ebp - 0xcc]
test eax, eax
jne 0x436cb3
mov eax, 1
lea ecx, [ebp - 0xcc]
lock xadd dword [ecx], eax
test eax, eax
jne 0x436cb3
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0xc8], eax
jmp 0x436cb9
mov eax, dword [ebp - 0xc8]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0xc8]
xorps xmm0, xmm0
mov byte [ebp - 0xd0], 0
movlpd qword [ebp - 0x118], xmm0
movlpd qword [ebp - 0x120], xmm0
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push 0x28
mov dword [ebp - 0xbc], 1
call fcn.004511c8
mov esi, eax
add esp, 4
mov dword [ebp - 0x15c], esi
xorps xmm0, xmm0
mov byte [ebp - 4], 0x27
movups xmmword [esi], xmm0
lea eax, [ebp - 0x68]
movups xmmword [esi + 0x10], xmm0
push eax
lea ecx, [ebp - 0x188]
movq qword [esi + 0x20], xmm0
call fcn.00411780
mov dword [esi], 0
mov byte [ebp - 4], 0x29
xor ecx, ecx
mov word [esi + 4], 0
push ecx
mov dword [esi + 8], 0
mov word [esi + 8], cx
lea ecx, [esi + 8]
push 0x47c32c
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 7
call fcn.00411b40
lea ecx, [esi + 0x20]
mov byte [ebp - 4], 0x2a
call fcn.00444120
lea eax, [ebp - 0x188]
mov byte [ebp - 4], 0x2b
lea ecx, [esi + 8]
mov dword [esi + 0x24], 0
cmp ecx, eax
je 0x436d9d
cmp dword [ebp - 0x174], 8
push dword [ebp - 0x178]
cmovae eax, dword [ebp - 0x188]
push eax
call fcn.00411b40
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x174]
cmp edx, 8
jb 0x436de1
mov ecx, dword [ebp - 0x188]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436dd7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379aa
push edx
push ecx
call fcn.00451449
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x1e
cmp dword [ebp - 0x54], 8
mov ecx, esi
push 1
mov word [ebp - 0x188], ax
lea eax, [ebp - 0x68]
cmovae eax, dword [ebp - 0x68]
push 0
push 0
push eax
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 7
call fcn.00441070
mov eax, dword [esi]
mov dword [ebp - 0x15c], eax
test eax, eax
je 0x436e93
push 0x14
call fcn.004511c8
mov ecx, eax
add esp, 4
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp - 0x15c]
mov dword [ecx + 4], str.Stream::DiskStreamCached::Preload
mov dword [ecx], vtable.Util::SharedPtrThreadAdapter_struct_Stream::DiskStreamCached::Impl__unsigned_char____cdecl_Stream::DiskStreamCached::Impl::__int__void__.0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [edx + 0x10]
test eax, eax
je 0x436e65
lock inc dword [eax + 4]
mov eax, dword [edx + 0xc]
push 0
push 0
push ecx
push 0x4191d0
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x10]
push 0
mov dword [ecx + 0xc], eax
push 0
mov dword [ecx + 0x10], 0x419bf0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x16c]
cmp byte [edx + 0x1c], 0
je 0x436ecb
cmp dword [ebp - 0x18], 8
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x1a0]
cmovae edx, dword [ebp - 0x2c]
call fcn.00418480
mov eax, dword [ebp - 0x140]
or eax, 0x4000000
lea ecx, [ebp - 0x1a0]
or eax, 1
jmp 0x436f22
mov ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x314], 0
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x300], 7
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x436ef2
sub ecx, edx
sar ecx, 1
push ecx
push dword [ebp - 0x1a4]
lea ecx, [ebp - 0x314]
call fcn.00411b40
mov eax, dword [ebp - 0x140]
lea ecx, [ebp - 0x314]
or eax, 2
movups xmm0, xmmword [ecx]
xor edx, edx
movups xmmword [ebp - 0xb0], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [ebp - 0xa0], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], dx
mov dword [ebp - 4], 0x2d
test al, 2
je 0x436fa6
mov edx, dword [ebp - 0x300]
and eax, 0xfffffffd
mov dword [ebp - 0x15c], eax
cmp edx, 8
jb 0x436fa6
mov ecx, dword [ebp - 0x314]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436f96
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379af
push edx
push ecx
call fcn.00451449
mov eax, dword [ebp - 0x15c]
add esp, 8
mov byte [ebp - 4], 0x2e
test al, 1
je 0x43700b
mov edx, dword [ebp - 0x18c]
cmp edx, 8
jb 0x436fee
mov ecx, dword [ebp - 0x1a0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x436fe4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379af
push edx
push ecx
call fcn.00451449
add esp, 8
xor eax, eax
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x18c], 7
mov word [ebp - 0x1a0], ax
cmp dword [ebp - 0x9c], 8
lea ecx, [ebp - 0xb0]
jb 0x437024
mov eax, dword [ebp - 0xb0]
mov ecx, eax
jmp 0x43702a
lea eax, [ebp - 0xb0]
lea edx, [ebp - 0x128]
push edx
push 0
push ecx
push eax
mov ecx, esi
call fcn.00442270
mov byte [ebp - 0x129], al
test al, al
jne 0x437078
mov eax, dword [ebp - 0x130]
test eax, eax
je 0x437078
mov eax, dword [eax]
mov ecx, dword [ebp - 0x118]
neg ecx
push 0
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x114]
adc eax, 0
neg eax
push eax
push ecx
mov ecx, dword [ebp - 0x130]
push 0
push 0
call edx
mov eax, dword [esi + 0x24]
test eax, eax
je 0x437092
cmp eax, 0xffffffff
je 0x437092
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x24], 0
push ecx
mov ecx, esi
call fcn.004319d0
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x9c]
cmp edx, 8
jb 0x4370de
mov ecx, dword [ebp - 0xb0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4370d4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379b4
push edx
push ecx
call fcn.00451449
add esp, 8
cmp dword [ebp - 0x54], 8
lea eax, [ebp - 0x68]
cmovae eax, dword [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x84]
cmp edx, 8
jb 0x437134
mov ecx, dword [ebp - 0x98]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43712a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379b9
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x3c]
cmp edx, 8
jb 0x437172
mov ecx, dword [ebp - 0x50]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x437168
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379b9
push edx
push ecx
call fcn.00451449
add esp, 8
lea ecx, [ebp - 0x38]
call fcn.004203d0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x54]
cmp edx, 8
jb 0x4371b8
mov ecx, dword [ebp - 0x68]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4371ae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379b9
push edx
push ecx
call fcn.00451449
add esp, 8
xor eax, eax
mov byte [ebp - 4], 3
mov word [ebp - 0x68], ax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 7
test eax, eax
je 0x4371e6
push dword [ebp - 0xc8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0xe4]
cmp edx, 8
jb 0x4375f7
mov ecx, dword [ebp - 0xf8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4375ed
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379b9
jmp 0x4375ed
mov esi, dword [ebp - 0x130]
test esi, esi
je 0x437257
cmp byte [0x4d3333], 0
jne 0x437257
mov eax, dword [esi]
mov ecx, esi
push 0x4c92b8
push 0
push 0
push 0
push 0
call dword [eax + 4]
mov byte [0x4d3333], 1
push 0x78
lea eax, [ebp - 0x128]
push 0
push eax
call fcn.00452b60
add esp, 0xc
lea ecx, [ebp - 0x128]
push esi
call fcn.004199f0
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
movq qword [ebp - 0x38], xmm0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0xc8], 0
je 0x4373d5
cmp dword [eax + 0xcc], 0x10
lea edx, [eax + 0xb8]
jb 0x4372c2
mov edx, dword [edx]
lea ecx, [ebp - 0x1f0]
call fcn.00417b40
movups xmm0, xmmword [ebp - 0x1f0]
mov edx, dword [str.X_Twitch_CDN_Authorization]
xor eax, eax
mov dword [ebp - 0x20c], edx
movups xmmword [ebp - 0x168], xmm0
mov word [ebp - 0x1f0], ax
movups xmmword [ebp - 0x208], xmm0
movq xmm0, qword [ebp - 0x1e0]
movq qword [ebp - 0x14c], xmm0
movq qword [ebp - 0x1f8], xmm0
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x1dc], 7
mov ecx, edx
mov byte [ebp - 4], 0x32
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x258], 7
mov word [ebp - 0x26c], ax
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x437350
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x26c]
call fcn.00411b40
movups xmm0, xmmword [ebp - 0x168]
xor eax, eax
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 7
movups xmmword [ebp - 0x254], xmm0
mov word [ebp - 0x208], ax
movq xmm0, qword [ebp - 0x14c]
movq qword [ebp - 0x244], xmm0
lea eax, [ebp - 0x26c]
mov byte [ebp - 4], 0x33
push eax
lea ecx, [ebp - 0x38]
call fcn.00420340
lea ecx, [ebp - 0x26c]
call fcn.00420120
mov esi, dword [ebp - 0x130]
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x138]
mov ecx, 1
add eax, 0x110
lock xadd dword [eax], ecx
cmp dword [ebp - 0x18], 8
lea edx, [ebp - 0x2c]
lea eax, [ebp - 0x128]
cmovae edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x80]
cmp dword [ebp - 0x6c], 8
push eax
cmovae ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x38]
push eax
call fcn.0041bae0
add esp, 8
mov byte [ebp - 0x129], al
test al, al
jne 0x43744f
test esi, esi
je 0x43744f
mov eax, dword [esi]
mov ecx, dword [ebp - 0x118]
neg ecx
push 0
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x114]
adc eax, 0
neg eax
push eax
mov eax, dword [ebp - 0x11c]
push ecx
mov ecx, dword [ebp - 0x120]
neg ecx
adc eax, 0
neg eax
push eax
push ecx
mov ecx, esi
call edx
lea ecx, [ebp - 0x38]
call fcn.004203d0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x437471
push dword [ebp - 0xc8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0xe4]
cmp edx, 8
jb 0x4374b1
mov ecx, dword [ebp - 0xf8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4374a7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379be
push edx
push ecx
call fcn.00451449
add esp, 8
cmp byte [ebp - 0x129], 0
mov edx, str.__ok
mov eax, str.__fail
cmove edx, eax
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4374d0
sub ecx, esi
mov eax, 0x7ffffffe
mov esi, dword [ebp - 0x70]
sub eax, esi
sar ecx, 1
cmp eax, ecx
jb 0x4379c3
cmp dword [ebp - 0x6c], 8
lea eax, [ebp - 0x80]
push ecx
cmovae eax, dword [ebp - 0x80]
push edx
push esi
push eax
push ecx
push dword [ebp - 0x148]
lea ecx, [ebp - 0x1d8]
call fcn.00413db0
mov byte [ebp - 4], 0x34
lea edx, [ebp - 0x1d8]
cmp dword [ebp - 0x1c4], 8
mov ecx, 0x4e
cmovae edx, dword [ebp - 0x1d8]
call fcn.00441530
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x1c4]
cmp edx, 8
jb 0x437578
mov ecx, dword [ebp - 0x1d8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43756e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379c8
push edx
push ecx
call fcn.00451449
add esp, 8
mov edx, dword [ebp - 0x16c]
cmp dword [edx + 0x14], 0x10
jb 0x437586
mov edx, dword [edx]
lea ecx, [ebp - 0x1c0]
call fcn.00417b40
mov byte [ebp - 4], 0x35
lea edx, [ebp - 0x1c0]
cmp dword [ebp - 0x1ac], 8
mov ecx, 0x5a
cmovae edx, dword [ebp - 0x1c0]
call fcn.00441530
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x1ac]
cmp edx, 8
jb 0x4375f7
mov ecx, dword [ebp - 0x1c0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4375ed
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379cd
push edx
push ecx
call fcn.00451449
add esp, 8
cmp byte [ebp - 0x129], 0
je 0x4377cc
cmp dword [ebp - 0x150], 0
jne 0x437638
cmp dword [edi + 0x44], 0x10
lea edx, [edi + 0x30]
jb 0x437618
mov edx, dword [edx]
cmp dword [ebp - 0x18], 8
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
call fcn.0041d120
mov byte [ebp - 0x129], al
test al, al
je 0x4377cc
jmp 0x437673
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
push 0
cmovae eax, dword [ebp - 0x2c]
push 0x2200000
push 3
push 0
push 3
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x4377cc
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x129], 1
lea eax, [edi + 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00432530
mov eax, dword [ebp - 0x138]
add eax, 0xf4
mov byte [ebp - 0x12a], 0
mov dword [ebp - 0x154], eax
mov byte [ebp - 0x150], 1
mov eax, dword [eax]
mov esi, dword [ebp - 0x154]
test eax, eax
jne 0x4376c4
mov eax, 1
lock xadd dword [esi], eax
test eax, eax
jne 0x4376c4
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi + 4], eax
push 0xffffffffffffffff
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov byte [ebp - 4], 0x36
mov esi, edi
cmp dword [edi + 0x14], 0x10
jb 0x4376dd
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [edi + 0x10], ecx
jbe 0x437702
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [edi + 0x10]
jb 0x4376f0
mov esi, dword [ebp - 0x138]
lea eax, [ebp - 0x170]
push edx
push edi
push eax
lea ecx, [esi + 0xd4]
call fcn.004227b0
mov eax, dword [eax + 4]
test eax, eax
je 0x43772b
cmp eax, dword [esi + 0xd8]
jne 0x437799
push edi
lea ecx, [ebp - 0x37c]
call fcn.00411890
mov byte [ebp - 0x364], 1
lea eax, [ebp - 0x37c]
mov byte [ebp - 4], 0x37
push eax
lea eax, [ebp - 0x400]
push eax
lea ecx, [esi + 0xd4]
call fcn.0043f130
mov byte [ebp - 4], 0x36
mov edx, dword [ebp - 0x368]
cmp edx, 0x10
jb 0x437799
mov ecx, dword [ebp - 0x37c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x43778f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4379d2
push edx
push ecx
call fcn.00451449
add esp, 8
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x154]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
lea ecx, [edi + 0x70]
call fcn.00411810
push 0x78
push eax
call fcn.00452990
add esp, 8
cmp byte [ebp - 0x129], 0
jne 0x43784f
mov edx, dword [ebp - 0x134]
lea ecx, [ebp - 0x3dc]
call fcn.00429930
mov esi, eax
push str._still__
lea edx, [ebp - 0x2c]
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x430]
call fcn.00412e40
push esi
mov edx, eax
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x418]
call fcn.00412f60
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x3a
call fcn.00411580
mov edx, eax
mov ecx, 0x48
call fcn.00441530
lea ecx, [ebp - 0x418]
call fcn.00411640
lea ecx, [ebp - 0x430]
call fcn.00411640
lea ecx, [ebp - 0x3dc]
call fcn.00411640
mov byte [ebp - 0x12a], 0
jmp 0x43792e
cmp dword [ebp - 0x130], 0
je 0x437927
cmp byte [ebp - 0x12a], 0
je 0x437927
mov esi, dword [ebp - 0x138]
lea eax, [ebp - 0x1a8]
push eax
mov byte [ebp - 0x12a], 0
lea ecx, [esi + 0xf4]
call fcn.004017e0
push edi
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0x3b
push eax
lea ecx, [esi + 0xd4]
call fcn.0043db10
mov eax, dword [eax]
cmp eax, dword [esi + 0xd8]
jne 0x4378f0
lea eax, [ebp - 0x12a]
mov byte [ebp - 0x12a], 1
push eax
mov edx, edi
lea ecx, [ebp - 0x3e0]
call fcn.0043db80
add esp, 4
push eax
lea eax, [ebp - 0x13c]
mov byte [ebp - 4], 0x3c
push eax
lea ecx, [esi + 0xd4]
call fcn.0043dba0
lea ecx, [ebp - 0x3e0]
call fcn.004031c0
mov byte [ebp - 0x12a], 1
lea ecx, [ebp - 0x1a8]
mov byte [ebp - 4], 3
call fcn.004017c0
cmp byte [ebp - 0x12a], 0
je 0x437927
mov edx, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x130]
push 0
push dword [edx + 0x5c]
mov eax, dword [ecx]
push dword [edx + 0x58]
push dword [edx + 0x64]
push dword [edx + 0x60]
call dword [eax + 4]
mov byte [ebp - 0x12a], 1
lea ecx, [ebp - 0x2c]
call fcn.00411640
lea ecx, [ebp - 0x80]
call fcn.00411640
mov al, byte [ebp - 0x12a]
jmp 0x437956
mov eax, dword [ebp - 0x138]
cmp byte [eax + 0x139], 0
setne al
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.00450db2
mov esp, ebp
pop ebp
ret 0xc
call fcn.00401630
call fcn.00460976
call fcn.00460976
call fcn.00460976
call fcn.00460976
call fcn.00460976
call fcn.00401630
call fcn.00460976
call fcn.00460976
call fcn.00401630
call fcn.00460976
call fcn.00460976
call fcn.00460976
call fcn.00460976
call fcn.00460976
call fcn.00460976
call fcn.00401630
call fcn.00460976
call fcn.00460976
call fcn.00460976
int3