Function at 0x40a5e0
Capabilities:
Contain obfuscated stackstrings
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49e192
mov eax, dword fs:[0]
push eax
sub esp, 0x454
mov eax, dword [0x4c8748]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x33c], ecx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x338], esi
mov dword [ebp - 0x340], 0
mov dword [ebp - 0x334], 0
call fcn.00402ea0
add eax, 0x4c
lea ecx, [ebp - 0x80]
push eax
call fcn.00401650
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov edi, 9
mov dword [ebp - 4], 0
cmovae eax, dword [ebp - 0x80]
mov ecx, esi
push eax
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x340], edi
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
test al, al
jne 0x40a722
call fcn.00402ea0
add eax, 0x64
lea ecx, [ebp - 0x358]
push eax
call fcn.00401650
cmp dword [ebp - 0x344], 0x10
lea eax, [ebp - 0x358]
mov edi, 0x1b
mov dword [ebp - 4], 1
cmovae eax, dword [ebp - 0x358]
mov ecx, esi
push eax
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x340], edi
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
test al, al
jne 0x40a722
call fcn.00402ea0
add eax, 0x1b4
lea ecx, [ebp - 0x50]
push eax
call fcn.00401650
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
mov edi, 0x3f
mov dword [ebp - 4], 2
cmovae eax, dword [ebp - 0x50]
mov ecx, esi
push eax
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x340], edi
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
mov byte [ebp - 0x329], 0
test al, al
je 0x40a729
mov byte [ebp - 0x329], 1
mov eax, dword [ebp - 0x330]
mov dword [ebp - 4], 1
test al, 4
je 0x40a78f
mov edx, dword [ebp - 0x3c]
and eax, 0xfffffffb
mov dword [ebp - 0x330], eax
cmp edx, 0x10
jb 0x40a77d
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a76d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c76d
push edx
push ecx
call fcn.00476d79
mov eax, dword [ebp - 0x330]
add esp, 8
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
mov dword [ebp - 4], 0
test al, 2
je 0x40a7fe
mov edx, dword [ebp - 0x344]
and eax, 0xfffffffd
mov dword [ebp - 0x330], eax
cmp edx, 0x10
jb 0x40a7e3
mov ecx, dword [ebp - 0x358]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a7d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c772
push edx
push ecx
call fcn.00476d79
mov eax, dword [ebp - 0x330]
add esp, 8
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x344], 0xf
mov byte [ebp - 0x358], 0
mov edx, dword [ebp - 0x6c]
and eax, 0xfffffffe
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x330], eax
cmp edx, 0x10
jb 0x40a842
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a838
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c777
push edx
push ecx
call fcn.00476d79
add esp, 8
cmp byte [ebp - 0x329], 0
je 0x40a852
xor eax, eax
jmp 0x40c74f
mov dword [ebp - 4], 3
call fcn.00402ea0
add eax, 0x4c
lea ecx, [ebp - 0x358]
push eax
call fcn.00401650
cmp dword [ebp - 0x344], 0x10
lea eax, [ebp - 0x358]
mov ecx, esi
mov byte [ebp - 4], 4
cmovae eax, dword [ebp - 0x358]
push eax
call fcn.004697c0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0046aa60
mov edi, dword [ebp - 0x33c]
mov esi, eax
add edi, 4
cmp edi, esi
je 0x40a8cf
mov ecx, edi
call fcn.00401ca0
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov edx, dword [ebp - 0x6c]
cmp edx, 0x10
jb 0x40a903
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a8f9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c77c
push edx
push ecx
call fcn.00476d79
add esp, 8
mov edx, dword [ebp - 0x344]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov byte [ebp - 4], 3
cmp edx, 0x10
jb 0x40a953
mov ecx, dword [ebp - 0x358]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a949
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c781
push edx
push ecx
call fcn.00476d79
add esp, 8
call fcn.00402ea0
add eax, 0x64
lea ecx, [ebp - 0x358]
push eax
call fcn.00401650
cmp dword [ebp - 0x344], 0x10
lea eax, [ebp - 0x358]
mov ecx, dword [ebp - 0x338]
cmovae eax, dword [ebp - 0x358]
push eax
mov byte [ebp - 4], 5
call fcn.004697c0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0046aa60
mov edi, dword [ebp - 0x33c]
mov esi, eax
add edi, 0x1c
cmp edi, esi
je 0x40a9cd
mov ecx, edi
call fcn.00401ca0
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov edx, dword [ebp - 0x6c]
cmp edx, 0x10
jb 0x40aa01
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a9f7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c786
push edx
push ecx
call fcn.00476d79
add esp, 8
mov edx, dword [ebp - 0x344]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov byte [ebp - 4], 3
cmp edx, 0x10
jb 0x40aa51
mov ecx, dword [ebp - 0x358]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40aa47
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c78b
push edx
push ecx
call fcn.00476d79
add esp, 8
call fcn.00402ea0
add eax, 0x1cc
lea ecx, [ebp - 0x80]
push eax
call fcn.00401650
mov edi, dword [ebp - 0x330]
or edi, 0x1c0
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov esi, dword [ebp - 0x338]
mov ecx, esi
cmovae eax, dword [ebp - 0x80]
push eax
mov byte [ebp - 4], 6
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
mov edx, dword [ebp - 0x6c]
test al, al
mov byte [ebp - 4], 3
sete al
mov byte [ebp - 0x329], al
cmp edx, 0x10
jb 0x40aadd
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40aacd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c790
push edx
push ecx
call fcn.00476d79
mov al, byte [ebp - 0x329]
add esp, 8
test al, al
je 0x40ab2d
call fcn.00402ea0
add eax, 0x1cc
lea ecx, [ebp - 0x80]
push eax
call fcn.00401650
or edi, 0x200
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov ecx, esi
mov byte [ebp - 4], 7
cmovae eax, dword [ebp - 0x80]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046a940
mov ecx, dword [ebp - 0x33c]
mov byte [ebp - 4], 3
mov dword [ecx + 0x34], eax
lea ecx, [ebp - 0x80]
call fcn.00401ca0
call fcn.00402ea0
add eax, 0x1e4
lea ecx, [ebp - 0x80]
push eax
call fcn.00401650
or edi, 0x400
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov ecx, esi
mov byte [ebp - 4], 8
cmovae eax, dword [ebp - 0x80]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
mov edx, dword [ebp - 0x6c]
test al, al
mov byte [ebp - 4], 3
sete al
mov byte [ebp - 0x329], al
cmp edx, 0x10
jb 0x40abad
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ab9d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c795
push edx
push ecx
call fcn.00476d79
mov al, byte [ebp - 0x329]
add esp, 8
test al, al
je 0x40abfd
call fcn.00402ea0
add eax, 0x1e4
lea ecx, [ebp - 0x80]
push eax
call fcn.00401650
or edi, 0x800
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov ecx, esi
mov byte [ebp - 4], 9
cmovae eax, dword [ebp - 0x80]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046a940
mov ecx, dword [ebp - 0x33c]
mov byte [ebp - 4], 3
mov dword [ecx + 0x38], eax
lea ecx, [ebp - 0x80]
call fcn.00401ca0
call fcn.00402ea0
add eax, 0x1b4
lea ecx, [ebp - 0x358]
push eax
call fcn.00401650
or edi, 0x1000
mov dword [ebp - 0x330], edi
cmp dword [ebp - 0x344], 0x10
lea eax, [ebp - 0x358]
mov ecx, esi
mov byte [ebp - 4], 0xa
cmovae eax, dword [ebp - 0x358]
push eax
call fcn.004697c0
mov edx, dword [ebp - 0x344]
mov esi, eax
mov dword [ebp - 0x390], esi
mov byte [ebp - 4], 3
cmp edx, 0x10
jb 0x40ac85
mov ecx, dword [ebp - 0x358]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ac7b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c79a
push edx
push ecx
call fcn.00476d79
add esp, 8
mov ecx, esi
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x344], 0xf
mov byte [ebp - 0x358], 0
call fcn.0046b7f0
mov edx, eax
xor ecx, ecx
mov dword [ebp - 0x394], edx
mov dword [ebp - 0x340], ecx
cmp ecx, edx
jae 0x40c74a
push ecx
mov ecx, esi
call fcn.00469620
mov edi, eax
mov ecx, edi
mov dword [ebp - 0x338], edi
call fcn.0046b1f0
test al, al
jne 0x40c712
mov byte [ebp - 0x198], al
mov byte [ebp - 0x180], al
mov byte [ebp - 0x168], al
mov byte [ebp - 0x150], al
mov byte [ebp - 0x138], al
mov byte [ebp - 0x120], al
mov byte [ebp - 0x108], al
xor eax, eax
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 0xf
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0xf
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0xf
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0xf
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0xf
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0xf
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 7
mov word [ebp - 0xf0], ax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], 7
mov word [ebp - 0xd4], ax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], 0xf
mov byte [ebp - 0xbc], al
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], 7
mov word [ebp - 0xa4], ax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], eax
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0xb
xchg dword [ebp - 0x39c], eax
test esi, esi
jne 0x40af0f
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c79f
push 0x4ca47c
mov dword [ebp - 0x3c4], 0x4ca47c
mov dword [ebp - 0x3c0], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0xc
test esi, esi
jne 0x40af00
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x418], eax
mov byte [ebp - 4], 0xd
test eax, eax
je 0x40aef2
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40aef4
xor esi, esi
xchg dword [ebp - 0x398], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0x7c]
push eax
lea ecx, [ebp - 0x80]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x2000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov ecx, edi
mov byte [ebp - 4], 0xe
cmovae eax, dword [ebp - 0x80]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
mov edx, dword [ebp - 0x6c]
test al, al
mov byte [ebp - 4], 0xb
sete al
mov byte [ebp - 0x329], al
cmp edx, 0x10
jb 0x40af94
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40af84
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c7e0
push edx
push ecx
call fcn.00476d79
mov al, byte [ebp - 0x329]
add esp, 8
test al, al
je 0x40b011
call fcn.00402ea0
add eax, 0x7c
lea ecx, [ebp - 0x80]
push eax
call fcn.00401650
or esi, 0x4000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov ecx, edi
mov byte [ebp - 4], 0xf
cmovae eax, dword [ebp - 0x80]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0xb
cmp edx, 0x10
jb 0x40b011
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b007
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c7e5
push edx
push ecx
call fcn.00476d79
add esp, 8
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x3a0], eax
test esi, esi
jne 0x40b0b5
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c7ea
push 0x4ca47c
mov dword [ebp - 0x3cc], 0x4ca47c
mov dword [ebp - 0x3c8], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x10
test esi, esi
jne 0x40b0a6
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x3f0], eax
mov byte [ebp - 4], 0x11
test eax, eax
je 0x40b098
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40b09a
xor esi, esi
xchg dword [ebp - 0x3a4], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0x1fc]
push eax
lea ecx, [ebp - 0x80]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x8000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov ecx, edi
mov byte [ebp - 4], 0x12
cmovae eax, dword [ebp - 0x80]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
mov edx, dword [ebp - 0x6c]
test al, al
mov byte [ebp - 4], 0xb
sete al
mov byte [ebp - 0x329], al
cmp edx, 0x10
jb 0x40b13d
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b12d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c82b
push edx
push ecx
call fcn.00476d79
mov al, byte [ebp - 0x329]
add esp, 8
test al, al
je 0x40b1bc
call fcn.00402ea0
add eax, 0x1fc
lea ecx, [ebp - 0x80]
push eax
call fcn.00401650
or esi, 0x10000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov ecx, edi
mov byte [ebp - 4], 0x13
cmovae eax, dword [ebp - 0x80]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x1b0], eax
mov byte [ebp - 4], 0xb
cmp edx, 0x10
jb 0x40b1bc
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b1b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c830
push edx
push ecx
call fcn.00476d79
add esp, 8
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x3a8], eax
test esi, esi
jne 0x40b260
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c835
push 0x4ca47c
mov dword [ebp - 0x3d4], 0x4ca47c
mov dword [ebp - 0x3d0], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x14
test esi, esi
jne 0x40b251
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x40c], eax
mov byte [ebp - 4], 0x15
test eax, eax
je 0x40b243
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40b245
xor esi, esi
xchg dword [ebp - 0x3ac], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0x214]
push eax
lea ecx, [ebp - 0x80]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x20000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
mov ecx, edi
mov byte [ebp - 4], 0x16
cmovae eax, dword [ebp - 0x80]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
mov edx, dword [ebp - 0x6c]
test al, al
mov byte [ebp - 4], 0xb
sete al
mov byte [ebp - 0x329], al
cmp edx, 0x10
jb 0x40b2e8
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b2d8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c876
push edx
push ecx
call fcn.00476d79
mov al, byte [ebp - 0x329]
add esp, 8
test al, al
je 0x40b3be
call fcn.00402ea0
add eax, 0x214
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x40000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x17
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0046aa60
mov esi, eax
lea eax, [ebp - 0x108]
cmp eax, esi
je 0x40b36c
mov ecx, eax
call fcn.00401ca0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x108], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0xf8], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov edx, dword [ebp - 0x6c]
cmp edx, 0x10
jb 0x40b3a0
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40b396
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40c87b
push edx
push ecx
call fcn.00476d79
add esp, 8
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x3b0], eax
test esi, esi
jne 0x40b462
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c880
push 0x4ca47c
mov dword [ebp - 0x3dc], 0x4ca47c
mov dword [ebp - 0x3d8], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x18
test esi, esi
jne 0x40b453
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x410], eax
mov byte [ebp - 4], 0x19
test eax, eax
je 0x40b445
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40b447
xor esi, esi
xchg dword [ebp - 0x3b4], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0x22c]
push eax
lea ecx, [ebp - 0x68]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x80000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x1a
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40b50b
call fcn.00402ea0
add eax, 0x22c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x100000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x1b
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1ac], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x3b8], eax
test esi, esi
jne 0x40b5af
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c8c1
push 0x4ca47c
mov dword [ebp - 0x3e4], 0x4ca47c
mov dword [ebp - 0x3e0], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x1c
test esi, esi
jne 0x40b5a0
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x414], eax
mov byte [ebp - 4], 0x1d
test eax, eax
je 0x40b592
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40b594
xor esi, esi
xchg dword [ebp - 0x360], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0x244]
push eax
lea ecx, [ebp - 0x68]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x200000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x1e
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40b658
call fcn.00402ea0
add eax, 0x244
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x400000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x1f
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046a940
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1a8], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x364], eax
test esi, esi
jne 0x40b6fc
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c902
push 0x4ca47c
mov dword [ebp - 0x3ec], 0x4ca47c
mov dword [ebp - 0x3e8], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x20
test esi, esi
jne 0x40b6ed
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x41c], eax
mov byte [ebp - 4], 0x21
test eax, eax
je 0x40b6df
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40b6e1
xor esi, esi
xchg dword [ebp - 0x368], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0x94]
push eax
lea ecx, [ebp - 0x68]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x800000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x22
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40b7a5
call fcn.00402ea0
add eax, 0x94
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x1000000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x23
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1d0], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x36c], eax
test esi, esi
jne 0x40b849
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c943
push 0x4ca47c
mov dword [ebp - 0x430], 0x4ca47c
mov dword [ebp - 0x42c], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x24
test esi, esi
jne 0x40b83a
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x420], eax
mov byte [ebp - 4], 0x25
test eax, eax
je 0x40b82c
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40b82e
xor esi, esi
xchg dword [ebp - 0x370], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0xac]
push eax
lea ecx, [ebp - 0x68]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x2000000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x26
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40b8f2
call fcn.00402ea0
add eax, 0xac
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x4000000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x27
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1cc], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x374], eax
test esi, esi
jne 0x40b996
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c984
push 0x4ca47c
mov dword [ebp - 0x3f8], 0x4ca47c
mov dword [ebp - 0x3f4], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x28
test esi, esi
jne 0x40b987
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x424], eax
mov byte [ebp - 4], 0x29
test eax, eax
je 0x40b979
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40b97b
xor esi, esi
xchg dword [ebp - 0x378], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0xc4]
push eax
lea ecx, [ebp - 0x68]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x8000000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x2a
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40ba3f
call fcn.00402ea0
add eax, 0xc4
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x10000000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x2b
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1c8], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x37c], eax
test esi, esi
jne 0x40bae3
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40c9c5
push 0x4ca47c
mov dword [ebp - 0x400], 0x4ca47c
mov dword [ebp - 0x3fc], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x2c
test esi, esi
jne 0x40bad4
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x428], eax
mov byte [ebp - 4], 0x2d
test eax, eax
je 0x40bac6
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40bac8
xor esi, esi
xchg dword [ebp - 0x380], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0xdc]
push eax
lea ecx, [ebp - 0x68]
call fcn.00401650
mov esi, dword [ebp - 0x330]
or esi, 0x20000000
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x2e
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40bb80
call fcn.00402ea0
add eax, 0xdc
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x40000000
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x2f
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1c4], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
call fcn.00402ea0
add eax, 0xf4
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x80000000
mov dword [ebp - 0x330], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x30
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40bc67
call fcn.00402ea0
add eax, 0xf4
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or dword [ebp - 0x334], 1
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x31
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0046aa60
mov esi, eax
lea eax, [ebp - 0x198]
cmp eax, esi
je 0x40bc53
mov ecx, eax
call fcn.00401ca0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x198], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x188], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x80]
call fcn.00401ca0
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
call fcn.00401ca0
push str.link2
mov ecx, edi
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
test al, al
jne 0x40bcd8
push str.link2
mov ecx, edi
call fcn.004697c0
lea ecx, [ebp - 0x68]
push ecx
mov ecx, eax
call fcn.0046aa60
mov esi, eax
lea eax, [ebp - 0x180]
cmp eax, esi
je 0x40bcd0
mov ecx, eax
call fcn.00401ca0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x180], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x170], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x68]
call fcn.00401ca0
call fcn.00402ea0
add eax, 0x10c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
mov esi, dword [ebp - 0x334]
or esi, 2
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x32
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40bdc4
call fcn.00402ea0
add eax, 0x10c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 4
mov dword [ebp - 0x334], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x33
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0046aa60
mov esi, eax
lea eax, [ebp - 0x150]
cmp eax, esi
je 0x40bdaa
mov ecx, eax
call fcn.00401ca0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x150], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x140], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x80]
call fcn.00401ca0
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [ebp - 0x334]
call fcn.00402ea0
add eax, 0x13c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 8
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x34
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40be59
call fcn.00402ea0
add eax, 0x13c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x10
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x35
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1bc], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
call fcn.00402ea0
add eax, 0x154
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x20
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x36
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40beee
call fcn.00402ea0
add eax, 0x154
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x40
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x37
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1b8], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
call fcn.00402ea0
add eax, 0x16c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x80
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x38
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40bf89
call fcn.00402ea0
add eax, 0x16c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x100
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x39
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1b4], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
call fcn.00402ea0
add eax, 0x184
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x200
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x3a
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40c024
call fcn.00402ea0
add eax, 0x184
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x400
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x3b
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046ab80
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1c0], eax
mov byte [ebp - 4], 0xb
call fcn.00401ca0
call fcn.00402ea0
add eax, 0x124
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x800
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x3c
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40c110
call fcn.00402ea0
add eax, 0x124
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x1000
mov dword [ebp - 0x334], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x3d
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0046aa60
mov esi, eax
lea eax, [ebp - 0x120]
cmp eax, esi
je 0x40c0f6
mov ecx, eax
call fcn.00401ca0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x120], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x110], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x80]
call fcn.00401ca0
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [ebp - 0x334]
call fcn.00402ea0
add eax, 0x19c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x2000
mov dword [ebp - 0x334], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x3e
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x329], al
mov byte [ebp - 4], 0xb
call fcn.00401ca0
cmp byte [ebp - 0x329], 0
jne 0x40c341
call fcn.00402ea0
add eax, 0x19c
lea ecx, [ebp - 0x68]
push eax
call fcn.00401650
or esi, 0x4000
mov dword [ebp - 0x334], esi
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, edi
mov byte [ebp - 4], 0x3f
cmovae eax, dword [ebp - 0x68]
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b7f0
mov esi, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x35c], esi
call fcn.00401ca0
xor edi, edi
nop
cmp edi, esi
jae 0x40c33b
mov esi, dword [0x4ca478]
xchg dword [ebp - 0x384], eax
test esi, esi
jne 0x40c26c
mov eax, dword [0x4caa90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4ca494]
cmp eax, dword [ecx + 4]
jg 0x40ca06
push 0x4ca47c
mov dword [ebp - 0x408], 0x4ca47c
mov dword [ebp - 0x404], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x4ca478]
mov byte [ebp - 4], 0x40
test esi, esi
jne 0x40c25d
push 0x2d4
call fcn.00477045
add esp, 4
mov dword [ebp - 0x3bc], eax
mov byte [ebp - 4], 0x41
test eax, eax
je 0x40c24f
mov ecx, eax
call fcn.00413670
mov esi, eax
jmp 0x40c251
xor esi, esi
xchg dword [ebp - 0x388], eax
mov dword [0x4ca478], esi
push 0x4ca47c
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [esi + 0x19c]
push eax
lea ecx, [ebp - 0x68]
call fcn.00401650
or dword [ebp - 0x334], 0x8000
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov ecx, dword [ebp - 0x338]
cmovae eax, dword [ebp - 0x68]
push eax
mov byte [ebp - 4], 0x42
call fcn.004697c0
push edi
mov ecx, eax
call fcn.00469620
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
mov esi, eax
call fcn.00401ca0
mov ecx, esi
call fcn.0046af60
test al, al
jne 0x40c32f
lea eax, [ebp - 0x80]
mov ecx, esi
push eax
call fcn.0046aa60
mov ecx, dword [ebp - 0x88]
mov byte [ebp - 4], 0x43
cmp dword [ebp - 0x84], ecx
je 0x40c316
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
add dword [ebp - 0x88], 0x18
jmp 0x40c323
push eax
push ecx
lea ecx, [ebp - 0x8c]
call fcn.00407eb0
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xb
call fcn.00401ca0
mov esi, dword [ebp - 0x35c]
inc edi
jmp 0x40c1c0
mov edi, dword [ebp - 0x338]
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0x6b736564
push eax
mov ecx, edi
mov dword [ebp - 0x40], 0x6174735f
mov dword [ebp - 0x3c], 0x737574
mov dword [ebp - 0x38], 0x6b736564
mov dword [ebp - 0x34], 0x6d616e5f
mov word [ebp - 0x30], 0x65
mov dword [ebp - 0x2c], 0x6b736564
mov dword [ebp - 0x28], 0x6f63695f
mov byte [ebp - 0x24], 0
mov dword [ebp - 0x20], 0x6b736564
mov dword [ebp - 0x1c], 0x6c72755f
mov byte [ebp - 0x18], 0
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
test al, al
jne 0x40c3bc
lea eax, [ebp - 0x44]
mov ecx, edi
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046a940
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
test al, al
jne 0x40c44f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.004697c0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0046aa60
push 0xfde9
push eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0x44
push eax
call fcn.004640a0
mov esi, eax
add esp, 0xc
lea eax, [ebp - 0xd4]
cmp eax, esi
je 0x40c43b
mov ecx, eax
call fcn.00401cf0
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0xd4], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0xc4], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x68]
call fcn.00401cf0
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xb
call fcn.00401ca0
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
test al, al
jne 0x40c4e2
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.004697c0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0046aa60
push 0xfde9
push eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0x45
push eax
call fcn.004640a0
mov esi, eax
add esp, 0xc
lea eax, [ebp - 0xa4]
cmp eax, esi
je 0x40c4ce
mov ecx, eax
call fcn.00401cf0
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0xa4], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x94], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x68]
call fcn.00401cf0
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xb
call fcn.00401ca0
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
test al, al
jne 0x40c551
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.004697c0
lea ecx, [ebp - 0x68]
push ecx
mov ecx, eax
call fcn.0046aa60
mov esi, eax
lea eax, [ebp - 0xbc]
cmp eax, esi
je 0x40c549
mov ecx, eax
call fcn.00401ca0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0xbc], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0xac], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x68]
call fcn.00401ca0
push str.brolst
mov ecx, edi
call fcn.004697c0
mov ecx, eax
call fcn.0046b1f0
test al, al
jne 0x40c69a
push str.brolst
mov ecx, edi
call fcn.004697c0
mov esi, eax
mov ecx, esi
mov dword [ebp - 0x338], esi
call fcn.0046b7f0
mov dword [ebp - 0x38c], eax
xor edi, edi
nop
cmp edi, eax
jae 0x40c69a
push edi
mov ecx, esi
call fcn.00469620
mov esi, eax
mov ecx, esi
call fcn.0046b1f0
test al, al
jne 0x40c6e2
push str.bro_id
mov ecx, esi
call fcn.004697c0
mov ecx, eax
call fcn.0046a940
push str.path
mov ecx, esi
mov dword [ebp - 0x35c], eax
call fcn.004697c0
lea ecx, [ebp - 0x448]
push ecx
mov ecx, eax
call fcn.0046aa60
push 0xfde9
push eax
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x46
push eax
call fcn.004640a0
add esp, 0xc
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 0x48
call fcn.00401ca0
push 0x4a3d44
mov ecx, esi
call fcn.004697c0
lea ecx, [ebp - 0x460]
push ecx
mov ecx, eax
call fcn.0046aa60
push 0xfde9
push eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0x49
push eax
call fcn.004640a0
add esp, 0xc
lea ecx, [ebp - 0x460]
mov byte [ebp - 4], 0x4b
call fcn.00401ca0
push 0x4a3d4c
mov ecx, esi
call fcn.004697c0
mov ecx, eax
call fcn.0046a940
lea ecx, [ebp - 0xf0]
push ecx
lea ecx, [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x33c]
push eax
call fcn.00409b80
lea ecx, [ebp - 0x68]
test eax, eax
je 0x40c6d1
mov eax, dword [ebp - 0x35c]
mov dword [ebp - 0x1a4], eax
call fcn.00401cf0
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xb
call fcn.00401cf0
mov edi, dword [ebp - 0x33c]
lea eax, [ebp - 0x1d4]
push eax
mov ecx, edi
call fcn.00409da0
test eax, eax
je 0x40c6fd
mov eax, dword [edi + 0x40]
lea ecx, [ebp - 0x1d4]
push ecx
cmp dword [edi + 0x44], eax
je 0x40c6f4
mov ecx, eax
call fcn.00401790
add dword [edi + 0x40], 0x154
jmp 0x40c6fd
call fcn.00401cf0
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xb
call fcn.00401cf0
mov esi, dword [ebp - 0x338]
inc edi
mov eax, dword [ebp - 0x38c]
jmp 0x40c590
push eax
lea ecx, [edi + 0x3c]
call fcn.00407c30
lea ecx, [ebp - 0x1d4]
mov byte [ebp - 4], 3
call fcn.00401df0
mov esi, dword [ebp - 0x390]
mov ecx, dword [ebp - 0x340]
mov edx, dword [ebp - 0x394]
inc ecx
jmp 0x40acb1
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0047702f
mov esp, ebp
pop ebp
ret 4
call fcn.0047c5ae
call fcn.0047c5ae
call fcn.0047c5ae
call fcn.0047c5ae
call fcn.0047c5ae
call fcn.0047c5ae
call fcn.0047c5ae
call fcn.0047c5ae
call fcn.0047c5ae
call fcn.0047c5ae
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40ae9f
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40ae9f
call fcn.0047c5ae
call fcn.0047c5ae
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40b045
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40b045
call fcn.0047c5ae
call fcn.0047c5ae
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40b1f0
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40b1f0
call fcn.0047c5ae
call fcn.0047c5ae
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40b3f2
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40b3f2
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40b53f
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40b53f
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40b68c
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40b68c
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40b7d9
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40b7d9
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40b926
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40b926
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40ba73
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40ba73
push 0x4ca494
call fcn.004771ff
add esp, 4
cmp dword [0x4ca494], 0xffffffff
jne 0x40c1fc
push 0x4ca47c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a1390
call fcn.0047701a
push 0x4ca494
call fcn.004771b5
add esp, 8
jmp 0x40c1fc