Function at 0x49e7d0
Capabilities:
Get common file path
Get startup folder
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50f851
mov eax, dword fs:[0]
push eax
sub esp, 0x2d8
mov eax, dword [0x57b0c0]
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 - 0x25c], 0
xorps xmm0, xmm0
xor eax, eax
mov dword [ebp - 0x230], 0
movups xmmword [ebp - 0x240], xmm0
mov dword [ebp - 0x22c], 7
mov word [ebp - 0x240], ax
push eax
push eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x4a0448
xorps xmm0, xmm0
mov dword [ebp - 0x264], 0
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x260], 0
movups xmmword [ebp - 0x274], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x49e871
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x274]
call fcn.0040d160
push 1
push 0x55a988
lea ecx, [ebp - 0x274]
mov byte [ebp - 4], 1
call fcn.0040b220
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x290], xmm0
movq xmm0, qword [eax + 0x10]
mov word [eax], cx
lea ecx, [ebp - 0x240]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
lea eax, [ebp - 0x290]
push eax
movq qword [ebp - 0x280], xmm0
call fcn.0040ad90
mov ecx, dword [ebp - 0x27c]
cmp ecx, 7
jbe 0x49e925
mov edx, dword [ebp - 0x290]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49e91b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x260]
cmp ecx, 7
jbe 0x49e969
mov edx, dword [ebp - 0x274]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49e95f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov ecx, dword [ebp - 0x230]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 0x11
jb 0x4a04a8
cmp dword [ebp - 0x22c], 7
lea eax, [ebp - 0x240]
push 0x11
cmova eax, dword [ebp - 0x240]
push 0x55a9fc
push ecx
push eax
push ecx
push dword [ebp - 0x258]
lea ecx, [ebp - 0x2c0]
call fcn.0040af90
cmp dword [ebp - 0x2ac], 7
lea eax, [ebp - 0x2c0]
push 0
cmova eax, dword [ebp - 0x2c0]
mov esi, 0xc00000
push eax
mov dword [ebp - 0x250], esi
call fcn.004e0c74
mov ecx, dword [ebp - 0x2ac]
add esp, 8
mov edi, eax
cmp ecx, 7
jbe 0x49ea1a
mov edx, dword [ebp - 0x2c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49ea10
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04ad
push ecx
push edx
call fcn.004d54f1
add esp, 8
lea ecx, [ebp - 0x2a8]
test edi, edi
jne 0x49fd58
mov edx, 0x5a6d50
call fcn.004a46c0
push 7
push 0x55aa20
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.0040b220
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x290], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x280], xmm0
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edi, SysReAllocString
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x230]
mov eax, edi
sub eax, ecx
cmp eax, 0x11
jb 0x4a04b2
cmp dword [ebp - 0x22c], 7
lea eax, [ebp - 0x240]
push 0x11
cmova eax, dword [ebp - 0x240]
push 0x55a9cc
push ecx
push eax
push ecx
push dword [ebp - 0x258]
lea ecx, [ebp - 0x274]
call fcn.0040af90
lea edx, [ebp - 0x290]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x274]
call fcn.0049e580
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x260]
mov byte [ebp - 0x249], al
cmp ecx, 7
jbe 0x49eb14
mov edx, dword [ebp - 0x274]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49eb0a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04b7
push ecx
push edx
call fcn.004d54f1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x27c]
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 7
mov word [ebp - 0x274], ax
cmp ecx, 7
jbe 0x49eb75
mov edx, dword [ebp - 0x290]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49eb6b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04b7
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x294]
cmp ecx, 7
jbe 0x49ebb9
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49ebaf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04b7
push ecx
push edx
call fcn.004d54f1
add esp, 8
cmp byte [ebp - 0x249], 0
je 0x49f33e
mov byte [ebp - 0x278], 0
lea edx, [ebp - 0x240]
push dword [ebp - 0x278]
lea ecx, [ebp - 0x290]
mov byte [ebp - 0x249], 0
call fcn.00486d10
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
lea edx, [ebp - 0x290]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x220]
call fcn.00485e00
add esp, 4
test eax, eax
jne 0x4a04bc
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x27c]
cmp ecx, 7
jbe 0x49ec63
mov edx, dword [ebp - 0x290]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49ec59
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04cf
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov ecx, dword [ebp - 0x21c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x228], xmm0
test ecx, ecx
je 0x49ec7c
lock inc dword [ecx + 4]
mov edi, dword [ebp - 0x220]
mov dword [ebp - 0x228], edi
mov dword [ebp - 0x224], ecx
test ecx, ecx
je 0x49ec96
lock inc dword [ecx + 4]
movlpd qword [ebp - 0x248], xmm0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
test ecx, ecx
je 0x49ecdb
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x49ecdb
mov eax, dword [ecx]
call dword [eax]
or ecx, 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0x21c]
lock xadd dword [ecx + 8], eax
jne 0x49ecdb
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
test edi, edi
je 0x49f2d8
nop word [eax + eax]
add edi, 0x20
mov ecx, edi
mov dword [ebp - 0x278], edi
call fcn.0049dd70
test al, al
je 0x49ed79
mov byte [ebp - 0x2c4], 0
lea ecx, [ebp - 0x274]
push dword [ebp - 0x2c4]
mov edx, 0x55a9f0
call fcn.004a0530
add esp, 4
lea eax, [ebp - 0x2c0]
mov byte [ebp - 4], 0xb
or esi, 1
mov ecx, edi
push eax
mov dword [ebp - 0x25c], esi
call fcn.0049dcb0
push dword [ebp - 0x264]
or esi, 2
lea ecx, [ebp - 0x274]
mov dword [ebp - 0x250], esi
mov esi, dword [ebp - 0x260]
cmp esi, 7
cmova ecx, dword [ebp - 0x274]
push ecx
mov ecx, eax
call fcn.0049db20
test eax, eax
jne 0x49ed7f
mov byte [ebp - 0x251], 1
jmp 0x49ed86
mov esi, dword [ebp - 0x260]
mov byte [ebp - 0x251], 0
mov eax, dword [ebp - 0x250]
test al, 2
je 0x49ee02
mov ecx, dword [ebp - 0x2ac]
and eax, 0xfffffffd
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49ede5
mov edx, dword [ebp - 0x2c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49edcf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov esi, dword [ebp - 0x260]
add esp, 8
mov eax, dword [ebp - 0x250]
xor ecx, ecx
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2ac], 7
mov word [ebp - 0x2c0], cx
mov dword [ebp - 4], 0xa
test al, 1
je 0x49ee50
and eax, 0xfffffffe
mov dword [ebp - 0x250], eax
cmp esi, 7
jbe 0x49ee50
mov edx, dword [ebp - 0x274]
lea ecx, [esi*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49ee46
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
cmp byte [ebp - 0x251], 0
je 0x49f1ff
mov ecx, dword [ebp - 0x230]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 0x11
jb 0x4a04a8
cmp dword [ebp - 0x22c], 7
lea eax, [ebp - 0x240]
push 0x11
cmova eax, dword [ebp - 0x240]
push 0x55aa64
push ecx
push eax
push ecx
push dword [ebp - 0x258]
lea ecx, [ebp - 0x290]
call fcn.0040af90
mov esi, dword [ebp - 0x250]
or esi, 0x1000000
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x2e4]
or esi, 4
push edi
mov dword [ebp - 0x25c], esi
call fcn.0040cc90
or esi, 0x8000000
mov dword [ebp - 4], 0xd
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x290]
or esi, 8
cmp dword [ebp - 0x27c], 7
mov ecx, dword [ebp - 0x2e4]
mov edi, dword [ebp - 0x2d4]
cmova edx, eax
cmp dword [ebp - 0x2d0], 7
mov dword [ebp - 0x258], eax
lea eax, [ebp - 0x2e4]
cmova eax, ecx
mov dword [ebp - 0x250], esi
mov dword [ebp - 0x25c], esi
mov dword [ebp - 0x2cc], ecx
cmp edi, dword [ebp - 0x280]
jne 0x49f223
test edi, edi
je 0x49ef5e
sub eax, edx
mov dword [ebp - 0x2c8], eax
nop dword [eax]
movzx ecx, word [edx + eax]
movzx eax, word [edx]
cmp cx, ax
jne 0x49f223
mov eax, dword [ebp - 0x2c8]
add edx, 2
sub edi, 1
jne 0x49ef40
mov edi, dword [ebp - 0x278]
mov byte [ebp - 0x251], 0
mov dword [ebp - 4], 0xf
mov eax, dword [ebp - 0x250]
test al, 0x40
je 0x49efe8
mov ecx, dword [ebp - 0x260]
and eax, 0xffffffbf
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49efcb
mov edx, dword [ebp - 0x274]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49efbb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov eax, dword [ebp - 0x250]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 7
mov word [ebp - 0x274], cx
mov dword [ebp - 4], 0xe
test al, 0x20
je 0x49f042
mov ecx, dword [ebp - 0x294]
and eax, 0xffffffdf
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49f042
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f032
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov eax, dword [ebp - 0x250]
add esp, 8
mov dword [ebp - 4], 0xd
test al, 0x10
je 0x49f0b9
mov ecx, dword [ebp - 0x2ac]
and eax, 0xffffffef
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49f09c
mov edx, dword [ebp - 0x2c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f08c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov eax, dword [ebp - 0x250]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2ac], 7
mov word [ebp - 0x2c0], cx
mov dword [ebp - 4], 0xc
test al, 8
je 0x49f113
mov ecx, dword [ebp - 0x2d0]
and eax, 0xfffffff7
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49f113
mov edx, dword [ebp - 0x2cc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f103
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov eax, dword [ebp - 0x250]
add esp, 8
mov dword [ebp - 4], 0xa
test al, 4
je 0x49f167
and eax, 0xfffffffb
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x27c]
cmp eax, 7
jbe 0x49f167
mov edx, dword [ebp - 0x258]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f15d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
cmp byte [ebp - 0x251], 0
je 0x49f1ff
push edi
lea ecx, [ebp - 0x290]
call fcn.0040cc90
movups xmm1, xmmword [ebp - 0x290]
cmp dword [ebp - 0x27c], 7
lea ecx, [ebp - 0x2a8]
movq xmm0, qword [ebp - 0x280]
movd eax, xmm1
movups xmmword [ebp - 0x2a8], xmm1
cmova ecx, eax
movq qword [ebp - 0x298], xmm0
push ecx
call fcn.004bed2d
mov ecx, dword [ebp - 0x294]
cmp ecx, 7
jbe 0x49f1f8
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f1ee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov byte [ebp - 0x249], 1
lea ecx, [ebp - 0x228]
call fcn.004805b0
mov edi, dword [ebp - 0x228]
test edi, edi
je 0x49f2d8
mov esi, dword [ebp - 0x250]
jmp 0x49ecf0
mov edx, 0x5a6d50
lea ecx, [ebp - 0x2c0]
call fcn.004a46c0
push 7
mov dword [ebp - 4], 0xe
or esi, 0x10
push 0x55aa88
mov ecx, eax
mov dword [ebp - 0x25c], esi
call fcn.0040b220
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2a8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x298], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edi, dword [ebp - 0x278]
lea ecx, [ebp - 0x274]
mov dword [ebp - 4], 0xf
or esi, 0x20
push edi
mov dword [ebp - 0x25c], esi
call fcn.0040cc90
mov dword [ebp - 4], 0x10
lea edx, [ebp - 0x2a8]
or esi, 0x40
lea ecx, [ebp - 0x274]
mov dword [ebp - 0x250], esi
mov dword [ebp - 0x25c], esi
call fcn.0049e580
test al, al
je 0x49ef64
mov byte [ebp - 0x251], 1
jmp 0x49ef6b
mov esi, dword [ebp - 0x224]
or edi, 0xffffffff
test esi, esi
je 0x49f304
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x49f304
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x49f304
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x21c]
test esi, esi
je 0x49f32c
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x49f32c
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x49f32c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
cmp byte [ebp - 0x249], 0
je 0x4a0448
jmp 0x4a0437
mov ecx, dword [ebp - 0x230]
mov eax, edi
sub eax, ecx
cmp eax, 0x11
jb 0x4a04d4
cmp dword [ebp - 0x22c], 7
lea eax, [ebp - 0x240]
push 0x11
cmova eax, dword [ebp - 0x240]
push 0x55aa30
push ecx
push eax
push ecx
push dword [ebp - 0x258]
lea ecx, [ebp - 0x2a8]
call fcn.0040af90
movups xmm1, xmmword [ebp - 0x2a8]
lea ecx, [ebp - 0x290]
movq xmm0, qword [ebp - 0x298]
movq qword [ebp - 0x280], xmm0
cmp dword [ebp - 0x27c], 7
movd eax, xmm1
movups xmmword [ebp - 0x290], xmm1
cmova ecx, eax
push ecx
call fcn.004bed2d
mov ecx, dword [ebp - 0x27c]
cmp ecx, 7
jbe 0x49f3f8
mov edx, dword [ebp - 0x290]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f3ee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04d9
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov edx, 0x5a6d50
lea ecx, [ebp - 0x2a8]
call fcn.004a46c0
push 7
push 0x55aa54
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.0040b220
mov dword [ebp - 0x264], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x274], xmm0
mov dword [ebp - 0x260], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x274], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x264], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x12
mov eax, edi
mov ecx, dword [ebp - 0x230]
sub eax, ecx
cmp eax, 0x11
jb 0x4a04de
cmp dword [ebp - 0x22c], 7
lea eax, [ebp - 0x240]
push 0x11
cmova eax, dword [ebp - 0x240]
push 0x55aacc
push ecx
push eax
push ecx
push dword [ebp - 0x258]
lea ecx, [ebp - 0x2c0]
call fcn.0040af90
lea edx, [ebp - 0x274]
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x2c0]
call fcn.0049e720
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x2ac]
cmp ecx, 7
jbe 0x49f501
mov edx, dword [ebp - 0x2c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f4f7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04e3
push ecx
push edx
call fcn.004d54f1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x260]
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2ac], 7
mov word [ebp - 0x2c0], ax
cmp ecx, 7
jbe 0x49f562
mov edx, dword [ebp - 0x274]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f558
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04e3
push ecx
push edx
call fcn.004d54f1
add esp, 8
xor eax, eax
mov dword [ebp - 0x264], 0
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x260], 7
mov word [ebp - 0x274], ax
cmp ecx, 7
jbe 0x49f5c2
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f5b8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04e3
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov byte [ebp - 0x258], 0
lea edx, [ebp - 0x240]
push dword [ebp - 0x258]
lea ecx, [ebp - 0x2a8]
call fcn.00486d10
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
lea edx, [ebp - 0x2a8]
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x220]
call fcn.00485e00
add esp, 4
test eax, eax
jne 0x4a04e8
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x294]
cmp ecx, 7
jbe 0x49f658
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f64e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04fb
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov ecx, dword [ebp - 0x21c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x228], xmm0
test ecx, ecx
je 0x49f671
lock inc dword [ecx + 4]
mov edi, dword [ebp - 0x220]
mov dword [ebp - 0x228], edi
mov dword [ebp - 0x224], ecx
test ecx, ecx
je 0x49f68b
lock inc dword [ecx + 4]
movlpd qword [ebp - 0x248], xmm0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
test ecx, ecx
je 0x49f6d0
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x49f6d0
mov eax, dword [ecx]
call dword [eax]
or ecx, 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0x21c]
lock xadd dword [ecx + 8], eax
jne 0x49f6d0
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x19
test edi, edi
je 0x49fcf3
nop dword [eax]
add edi, 0x20
mov ecx, edi
mov dword [ebp - 0x278], edi
call fcn.0049dd70
test al, al
je 0x49f76f
mov byte [ebp - 0x258], 0
lea ecx, [ebp - 0x274]
push dword [ebp - 0x258]
mov edx, 0x55aaf0
call fcn.004a0530
add esp, 4
lea eax, [ebp - 0x290]
mov byte [ebp - 4], 0x1a
or esi, 0x80
mov ecx, edi
push eax
mov dword [ebp - 0x25c], esi
call fcn.0049dcb0
push dword [ebp - 0x264]
or esi, 0x100
lea ecx, [ebp - 0x274]
mov dword [ebp - 0x250], esi
mov esi, dword [ebp - 0x260]
cmp esi, 7
cmova ecx, dword [ebp - 0x274]
push ecx
mov ecx, eax
call fcn.0049db20
test eax, eax
jne 0x49f775
mov byte [ebp - 0x249], 1
jmp 0x49f77c
mov esi, dword [ebp - 0x260]
mov byte [ebp - 0x249], 0
mov eax, dword [ebp - 0x250]
test eax, 0x100
je 0x49f7fd
mov ecx, dword [ebp - 0x27c]
and eax, 0xfffffeff
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49f7e0
mov edx, dword [ebp - 0x290]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f7ca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov esi, dword [ebp - 0x260]
add esp, 8
mov eax, dword [ebp - 0x250]
xor ecx, ecx
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], cx
mov dword [ebp - 4], 0x19
test al, al
jns 0x49f84d
and eax, 0xffffff7f
mov dword [ebp - 0x250], eax
cmp esi, 7
jbe 0x49f84d
mov edx, dword [ebp - 0x274]
lea ecx, [esi*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f843
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
cmp byte [ebp - 0x249], 0
je 0x49fc11
mov ecx, dword [ebp - 0x230]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 0x11
jb 0x4a04a8
cmp dword [ebp - 0x22c], 7
lea eax, [ebp - 0x240]
push 0x11
cmova eax, dword [ebp - 0x240]
push 0x55aa98
push ecx
push eax
push ecx
push dword [ebp - 0x258]
lea ecx, [ebp - 0x274]
call fcn.0040af90
mov esi, dword [ebp - 0x250]
or esi, 0x40000000
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x2e4]
or esi, 0x200
push edi
mov dword [ebp - 0x25c], esi
call fcn.0040cc90
or esi, 0x20000000
mov dword [ebp - 4], 0x1c
lea edx, [ebp - 0x274]
mov eax, dword [ebp - 0x274]
or esi, 0x400
cmp dword [ebp - 0x260], 7
mov ecx, dword [ebp - 0x2e4]
mov edi, dword [ebp - 0x2d4]
cmova edx, eax
cmp dword [ebp - 0x2d0], 7
mov dword [ebp - 0x2c4], eax
lea eax, [ebp - 0x2e4]
cmova eax, ecx
mov dword [ebp - 0x250], esi
mov dword [ebp - 0x25c], esi
mov dword [ebp - 0x2c8], ecx
cmp edi, dword [ebp - 0x264]
jne 0x49fc35
test edi, edi
je 0x49f95e
sub eax, edx
mov dword [ebp - 0x2cc], eax
nop dword [eax]
movzx ecx, word [eax + edx]
movzx eax, word [edx]
cmp cx, ax
jne 0x49fc35
mov eax, dword [ebp - 0x2cc]
add edx, 2
sub edi, 1
jne 0x49f940
mov edi, dword [ebp - 0x278]
mov byte [ebp - 0x249], 0
mov dword [ebp - 4], 0x1e
mov eax, dword [ebp - 0x250]
test eax, 0x2000
je 0x49f9ed
mov ecx, dword [ebp - 0x2ac]
and eax, 0xffffdfff
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49f9d0
mov edx, dword [ebp - 0x2c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49f9c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov eax, dword [ebp - 0x250]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2ac], 7
mov word [ebp - 0x2c0], cx
mov dword [ebp - 4], 0x1d
test eax, 0x1000
je 0x49fa4c
mov ecx, dword [ebp - 0x294]
and eax, 0xffffefff
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49fa4c
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49fa3c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov eax, dword [ebp - 0x250]
add esp, 8
mov dword [ebp - 4], 0x1c
test eax, 0x800
je 0x49fac8
mov ecx, dword [ebp - 0x27c]
and eax, 0xfffff7ff
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49faab
mov edx, dword [ebp - 0x290]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49fa9b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov eax, dword [ebp - 0x250]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], cx
mov dword [ebp - 4], 0x1b
test eax, 0x400
je 0x49fb27
mov ecx, dword [ebp - 0x2d0]
and eax, 0xfffffbff
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49fb27
mov edx, dword [ebp - 0x2c8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49fb17
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov eax, dword [ebp - 0x250]
add esp, 8
mov dword [ebp - 4], 0x19
test eax, 0x200
je 0x49fb80
and eax, 0xfffffdff
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x260]
cmp eax, 7
jbe 0x49fb80
mov edx, dword [ebp - 0x2c4]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49fb76
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
cmp byte [ebp - 0x249], 0
je 0x49fc11
push edi
lea ecx, [ebp - 0x290]
call fcn.0040cc90
movups xmm1, xmmword [ebp - 0x290]
cmp dword [ebp - 0x27c], 7
lea ecx, [ebp - 0x2a8]
movq xmm0, qword [ebp - 0x280]
movd eax, xmm1
movups xmmword [ebp - 0x2a8], xmm1
cmova ecx, eax
movq qword [ebp - 0x298], xmm0
push ecx
call fcn.004bed2d
mov ecx, dword [ebp - 0x294]
cmp ecx, 7
jbe 0x49fc11
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49fc07
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
lea ecx, [ebp - 0x228]
call fcn.004805b0
mov edi, dword [ebp - 0x228]
test edi, edi
je 0x49fcf3
mov esi, dword [ebp - 0x250]
jmp 0x49f6e0
mov edx, 0x5a6d50
lea ecx, [ebp - 0x290]
call fcn.004a46c0
push 7
mov dword [ebp - 4], 0x1d
or esi, 0x800
push 0x55aabc
mov ecx, eax
mov dword [ebp - 0x25c], esi
call fcn.0040b220
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2a8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x298], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edi, dword [ebp - 0x278]
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 4], 0x1e
or esi, 0x1000
push edi
mov dword [ebp - 0x25c], esi
call fcn.0040cc90
mov dword [ebp - 4], 0x1f
lea edx, [ebp - 0x2a8]
or esi, 0x2000
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x250], esi
mov dword [ebp - 0x25c], esi
call fcn.0049e580
test al, al
je 0x49f964
mov byte [ebp - 0x249], 1
jmp 0x49f96b
mov esi, dword [ebp - 0x224]
or edi, 0xffffffff
test esi, esi
je 0x49fd1f
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x49fd1f
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x49fd1f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x21c]
test esi, esi
je 0x4a0437
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x4a0437
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x4a0437
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x4a0437
mov byte [ebp - 0x258], 0
lea edx, [ebp - 0x240]
push dword [ebp - 0x258]
call fcn.00486d10
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
lea edx, [ebp - 0x2a8]
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x220]
call fcn.00485e00
add esp, 4
test eax, eax
jne 0x4a0500
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x294]
cmp ecx, 7
jbe 0x49fde8
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49fdde
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a0513
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov ecx, dword [ebp - 0x21c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x228], xmm0
test ecx, ecx
je 0x49fe01
lock inc dword [ecx + 4]
mov edi, dword [ebp - 0x220]
mov dword [ebp - 0x228], edi
mov dword [ebp - 0x224], ecx
test ecx, ecx
je 0x49fe1b
lock inc dword [ecx + 4]
movlpd qword [ebp - 0x248], xmm0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
test ecx, ecx
je 0x49fe60
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x49fe60
mov eax, dword [ecx]
call dword [eax]
or ecx, 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0x21c]
lock xadd dword [ecx + 8], eax
jne 0x49fe60
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x25
test edi, edi
je 0x4a021d
nop dword [eax]
add edi, 0x20
mov ecx, edi
call fcn.0049dd70
test al, al
je 0x49fef9
mov byte [ebp - 0x258], 0
lea ecx, [ebp - 0x274]
push dword [ebp - 0x258]
mov edx, str..lnk
call fcn.004a0530
add esp, 4
lea eax, [ebp - 0x290]
mov byte [ebp - 4], 0x26
or esi, 0x4000
mov ecx, edi
push eax
mov dword [ebp - 0x25c], esi
call fcn.0049dcb0
push dword [ebp - 0x264]
or esi, 0x8000
lea ecx, [ebp - 0x274]
mov dword [ebp - 0x250], esi
mov esi, dword [ebp - 0x260]
cmp esi, 7
cmova ecx, dword [ebp - 0x274]
push ecx
mov ecx, eax
call fcn.0049db20
test eax, eax
jne 0x49feff
mov byte [ebp - 0x249], 1
jmp 0x49ff06
mov esi, dword [ebp - 0x260]
mov byte [ebp - 0x249], 0
mov eax, dword [ebp - 0x250]
test eax, 0x8000
je 0x49ff87
mov ecx, dword [ebp - 0x27c]
and eax, 0xffff7fff
mov dword [ebp - 0x250], eax
cmp ecx, 7
jbe 0x49ff6a
mov edx, dword [ebp - 0x290]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49ff54
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
mov esi, dword [ebp - 0x260]
add esp, 8
mov eax, dword [ebp - 0x250]
xor ecx, ecx
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 7
mov word [ebp - 0x290], cx
mov dword [ebp - 4], 0x25
test eax, 0x4000
je 0x49ffda
and eax, 0xffffbfff
mov dword [ebp - 0x250], eax
cmp esi, 7
jbe 0x49ffda
mov edx, dword [ebp - 0x274]
lea ecx, [esi*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x49ffd0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
cmp byte [ebp - 0x249], 0
je 0x4a01fe
mov edx, 0x5a6d50
lea ecx, [ebp - 0x290]
call fcn.004a46c0
push 7
push 0x55ab3c
mov ecx, eax
mov byte [ebp - 4], 0x27
call fcn.0040b220
mov esi, dword [ebp - 0x250]
xor ecx, ecx
or esi, 0x200000
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2a8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x298], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push edi
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0x28
call fcn.0040cc90
or esi, 0x100000
mov dword [ebp - 0x250], esi
lea edx, [ebp - 0x2a8]
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x2c0]
call fcn.0049e580
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x2ac]
mov byte [ebp - 0x249], al
cmp ecx, 7
jbe 0x4a00ba
mov edx, dword [ebp - 0x2c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4a00b0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2ac], 7
mov word [ebp - 0x2c0], ax
cmp ecx, 7
jbe 0x4a011b
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4a0111
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x27c]
cmp ecx, 7
jbe 0x4a015f
mov edx, dword [ebp - 0x290]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4a0155
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
cmp byte [ebp - 0x249], 0
je 0x4a0204
push edi
lea ecx, [ebp - 0x290]
call fcn.0040cc90
movups xmm1, xmmword [ebp - 0x290]
lea ecx, [ebp - 0x2a8]
or esi, 0x10000000
movq xmm0, qword [ebp - 0x280]
cmp dword [ebp - 0x27c], 7
movd eax, xmm1
mov dword [ebp - 0x250], esi
movups xmmword [ebp - 0x2a8], xmm1
cmova ecx, eax
movq qword [ebp - 0x298], xmm0
push ecx
call fcn.004bed2d
mov ecx, dword [ebp - 0x294]
cmp ecx, 7
jbe 0x4a0204
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4a01f2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a04a3
push ecx
push edx
call fcn.004d54f1
add esp, 8
jmp 0x4a0204
mov esi, dword [ebp - 0x250]
lea ecx, [ebp - 0x228]
call fcn.004805b0
mov edi, dword [ebp - 0x228]
test edi, edi
jne 0x49fe70
mov esi, dword [ebp - 0x224]
or edi, 0xffffffff
test esi, esi
je 0x4a0249
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x4a0249
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x4a0249
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov byte [ebp - 4], 0
mov esi, dword [ebp - 0x21c]
test esi, esi
je 0x4a0275
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x4a0275
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x4a0275
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edx, 0x5a6d50
lea ecx, [ebp - 0x2a8]
call fcn.004a46c0
push 7
push 0x55aafc
mov ecx, eax
mov byte [ebp - 4], 0x2a
call fcn.0040b220
mov dword [ebp - 0x264], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x274], xmm0
mov dword [ebp - 0x260], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x274], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x264], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x2b
mov eax, SysReAllocString
mov ecx, dword [ebp - 0x230]
sub eax, ecx
cmp eax, 0x11
jb 0x4a0518
cmp dword [ebp - 0x22c], 7
lea eax, [ebp - 0x240]
push 0x11
cmova eax, dword [ebp - 0x240]
push 0x55ab0c
push ecx
push eax
push ecx
push dword [ebp - 0x258]
lea ecx, [ebp - 0x2c0]
call fcn.0040af90
lea edx, [ebp - 0x274]
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x2c0]
call fcn.0049e720
mov ecx, dword [ebp - 0x2ac]
cmp ecx, 7
jbe 0x4a037d
mov edx, dword [ebp - 0x2c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4a0373
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a051d
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov ecx, dword [ebp - 0x260]
xor eax, eax
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2ac], 7
mov word [ebp - 0x2c0], ax
cmp ecx, 7
jbe 0x4a03da
mov edx, dword [ebp - 0x274]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4a03d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a051d
push ecx
push edx
call fcn.004d54f1
add esp, 8
mov ecx, dword [ebp - 0x294]
xor eax, eax
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 7
mov word [ebp - 0x274], ax
cmp ecx, 7
jbe 0x4a0437
mov edx, dword [ebp - 0x2a8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4a042d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a051d
push ecx
push edx
call fcn.004d54f1
add esp, 8
push 0
push 0
push 0
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov ecx, dword [ebp - 0x22c]
cmp ecx, 7
jbe 0x4a0488
mov edx, dword [ebp - 0x240]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4a047e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a0522
push ecx
push edx
call fcn.004d54f1
add esp, 8
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.004d523a
mov esp, ebp
pop ebp
ret
call fcn.004deff4
call fcn.00404710
call fcn.004deff4
call fcn.00404710
call fcn.004deff4
lea ecx, [ebp - 0x290]
mov edx, eax
push ecx
mov ecx, str.directory_iterator::directory_iterator
call fcn.00422340
call fcn.004deff4
call fcn.00404710
call fcn.004deff4
call fcn.00404710
call fcn.004deff4
lea ecx, [ebp - 0x2a8]
mov edx, eax
push ecx
mov ecx, str.directory_iterator::directory_iterator
call fcn.00422340
call fcn.004deff4
lea ecx, [ebp - 0x2a8]
mov edx, eax
push ecx
mov ecx, str.directory_iterator::directory_iterator
call fcn.00422340
call fcn.004deff4
call fcn.00404710
call fcn.004deff4
call fcn.004deff4
int3