Function at 0x4d2f40
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d66cd
mov eax, dword fs:[0]
push eax
sub esp, 0x564
mov eax, dword [0x634254]
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 - 0x55c], ecx
xor edi, edi
mov dword [ebp - 0x558], edi
mov dword [ebp - 4], 1
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 8
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
lea eax, [ebp + 0x20]
je 0x4d3a64
sub esp, 0x18
mov edx, SysReAllocString
mov esi, esp
mov dword [esi], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
cmp dword [ebp + 0x34], 8
mov ecx, dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
mov dword [ebp - 0x560], ecx
mov dword [ebp - 0x544], eax
cmp ecx, 8
jae 0x4d2fdb
movups xmm0, xmmword [eax]
lea eax, [edi + 7]
movups xmmword [esi], xmm0
jmp 0x4d3070
mov eax, ecx
or eax, 7
cmp eax, 0x7ffffffe
cmova eax, edx
mov dword [ebp - 0x54c], eax
inc eax
cmp eax, 0x7fffffff
ja 0x4d4093
add eax, eax
cmp eax, 0x1000
jb 0x4d302a
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d4093
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d404e
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d3045
test eax, eax
je 0x4d3043
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d405f
jmp 0x4d3045
xor ecx, ecx
mov eax, dword [ebp - 0x560]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x544]
push ecx
call fcn.00570780
mov eax, dword [ebp - 0x54c]
add esp, 0xc
mov ecx, dword [ebp - 0x560]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp - 0x55c]
mov dword [esi + 0x14], eax
call fcn.004d6570
test eax, eax
jne 0x4d308c
xor esi, esi
jmp 0x4d3fa7
mov eax, 0x5c
mov dword [ebp - 0xe0], 0
mov word [ebp - 0xe4], ax
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 2
mov eax, SysReAllocString
mov ecx, dword [ebp + 0x18]
sub eax, ecx
cmp eax, 2
jb 0x4d4070
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 2
cmovae eax, dword [ebp + 8]
push 0x614200
push ecx
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x550]
lea ecx, [ebp - 0x40]
call fcn.004448b5
or edi, 1
mov dword [ebp - 0x558], edi
mov byte [ebp - 4], 3
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x53c]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.004cf680
mov byte [ebp - 4], 2
mov esi, eax
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x4d314d
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d3143
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d4075
push edx
push ecx
call fcn.0056d0c8
add esp, 8
test esi, esi
je 0x4d3893
mov esi, dword [sym.imp.KERNEL32.DLL_FindNextFileW]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x570], esi
xor edx, edx
test ecx, ecx
je 0x4d31a5
mov eax, dword [ebp - 0x53c]
shr eax, 4
and eax, 1
je 0x4d31a5
cmp word [ebp - 0x510], 0x2e
jne 0x4d31a5
mov ax, word [ebp - 0x50e]
test ax, ax
je 0x4d31a0
cmp ax, 0x2e
jne 0x4d31a5
cmp word [ebp - 0x50c], dx
jne 0x4d31a5
mov edx, 1
test edx, edx
jne 0x4d386b
mov byte [ebp - 4], 4
call fcn.0040b05c
mov ecx, eax
test ecx, ecx
je 0x4d4089
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
or edi, 2
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0x548], edi
mov dword [ebp - 0x558], edi
lea esi, [eax + 0x10]
mov dword [ebp - 0x568], esi
je 0x4d333b
lea edi, [ebp - 0x510]
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4d31f5
sub edi, ecx
sar edi, 1
jne 0x4d3264
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov edi, dword [edx]
je 0x4d3335
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4d3239
cmp dword [esi - 8], 0
jl 0x4d407a
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x4d3335
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4d324d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x568], esi
jmp 0x4d3335
mov eax, dword [esi - 0xc]
lea edx, [ebp - 0x510]
sub edx, esi
mov dword [ebp - 0x54c], eax
sar edx, 1
mov dword [ebp - 0x544], edx
test edi, edi
js 0x4d407a
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x4d32ae
push edi
lea ecx, [ebp - 0x568]
call fcn.0040b85d
mov esi, dword [ebp - 0x568]
mov edx, dword [ebp - 0x544]
lea ecx, [edi + edi]
mov eax, dword [esi - 8]
cmp edx, dword [ebp - 0x54c]
ja 0x4d32e7
lea edx, [esi + edx*2]
test ecx, ecx
je 0x4d3323
test edx, edx
jne 0x4d32d4
call fcn.0058f2ca
mov dword [eax], 0x16
jmp 0x4d331b
add eax, eax
cmp eax, ecx
jb 0x4d3310
push ecx
push edx
push esi
call fcn.00570d00
add esp, 0xc
jmp 0x4d3320
add eax, eax
test ecx, ecx
je 0x4d3323
cmp eax, ecx
jb 0x4d3304
push ecx
lea eax, [ebp - 0x510]
push eax
push esi
call fcn.00570780
add esp, 0xc
jmp 0x4d3320
push eax
push 0
push esi
call fcn.005713c0
add esp, 0xc
call fcn.0058f2ca
mov dword [eax], 0x22
call fcn.0057b1f1
lea ecx, [edi + edi]
cmp edi, dword [esi - 8]
jg 0x4d407a
xor eax, eax
mov dword [esi - 0xc], edi
mov word [ecx + esi], ax
mov edi, dword [ebp - 0x548]
mov ecx, dword [ebp + 0x30]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 1
jb 0x4d4070
cmp dword [ebp + 0x34], 8
lea eax, [ebp + 0x20]
push 1
cmovae eax, dword [ebp + 0x20]
push 0x6058cc
push ecx
push eax
lea eax, [ebp + 0x20]
push eax
push dword [ebp - 0x544]
lea ecx, [ebp - 0x58]
call fcn.004448b5
or edi, 4
mov dword [ebp - 0x558], edi
mov ecx, esi
mov byte [ebp - 4], 5
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4d3386
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.004092f8
xor ecx, ecx
or edi, 8
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x70], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x60], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x4d3404
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d33fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d4075
push edx
push ecx
call fcn.0056d0c8
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
and edi, 0xfffffffd
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov dword [ebp - 0x558], edi
mov byte [ebp - 4], 8
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4d343d
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0x70]
sub esp, 0x18
mov dword [ebp - 0x54c], ecx
cmp ecx, 8
mov dword [ebp - 0x564], esp
mov ecx, dword [ebp - 0x70]
mov esi, esp
cmovae eax, ecx
mov dword [ebp - 0x544], ecx
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x56c], eax
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [ebp - 0x548], ecx
cmp ecx, 8
jae 0x4d349b
movups xmm0, xmmword [eax]
mov eax, 7
movups xmmword [esi], xmm0
jmp 0x4d3535
mov eax, ecx
mov ecx, SysReAllocString
or eax, 7
cmp eax, 0x7ffffffe
cmova eax, ecx
mov dword [ebp - 0x554], eax
inc eax
cmp eax, 0x7fffffff
ja 0x4d4093
add eax, eax
cmp eax, 0x1000
jb 0x4d34ef
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d4093
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d405f
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d350a
test eax, eax
je 0x4d3508
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d404e
jmp 0x4d350a
xor ecx, ecx
mov eax, dword [ebp - 0x548]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x56c]
push ecx
call fcn.00570780
mov eax, dword [ebp - 0x554]
add esp, 0xc
mov ecx, dword [ebp - 0x548]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], eax
mov byte [ebp - 4], 0xa
call fcn.0040b05c
mov ecx, eax
test ecx, ecx
je 0x4d4089
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
or edi, 0x10
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0x548], edi
mov dword [ebp - 0x558], edi
lea esi, [eax + 0x10]
mov dword [ebp - 0x560], esi
je 0x4d36c9
lea edi, [ebp - 0x510]
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4d3583
sub edi, ecx
sar edi, 1
jne 0x4d35f2
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov edi, dword [edx]
je 0x4d36c3
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4d35c7
cmp dword [esi - 8], 0
jl 0x4d407a
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x4d36c3
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4d35db
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x560], esi
jmp 0x4d36c3
mov eax, dword [esi - 0xc]
lea edx, [ebp - 0x510]
sub edx, esi
mov dword [ebp - 0x56c], eax
sar edx, 1
mov dword [ebp - 0x554], edx
test edi, edi
js 0x4d407a
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x4d363c
push edi
lea ecx, [ebp - 0x560]
call fcn.0040b85d
mov esi, dword [ebp - 0x560]
mov edx, dword [ebp - 0x554]
lea ecx, [edi + edi]
mov eax, dword [esi - 8]
cmp edx, dword [ebp - 0x56c]
ja 0x4d3675
lea edx, [esi + edx*2]
test ecx, ecx
je 0x4d36b1
test edx, edx
jne 0x4d3662
call fcn.0058f2ca
mov dword [eax], 0x16
jmp 0x4d36a9
add eax, eax
cmp eax, ecx
jb 0x4d369e
push ecx
push edx
push esi
call fcn.00570d00
add esp, 0xc
jmp 0x4d36ae
add eax, eax
test ecx, ecx
je 0x4d36b1
cmp eax, ecx
jb 0x4d3692
push ecx
lea eax, [ebp - 0x510]
push eax
push esi
call fcn.00570780
add esp, 0xc
jmp 0x4d36ae
push eax
push 0
push esi
call fcn.005713c0
add esp, 0xc
call fcn.0058f2ca
mov dword [eax], 0x22
call fcn.0057b1f1
lea ecx, [edi + edi]
cmp edi, dword [esi - 8]
jg 0x4d407a
xor eax, eax
mov dword [esi - 0xc], edi
mov word [ecx + esi], ax
mov edi, dword [ebp - 0x548]
mov ecx, dword [ebp + 0x18]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 1
jb 0x4d4070
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 1
cmovae eax, dword [ebp + 8]
push 0x6058cc
push ecx
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x554]
lea ecx, [ebp - 0x40]
call fcn.004448b5
or edi, 0x20
mov dword [ebp - 0x558], edi
mov ecx, esi
mov byte [ebp - 4], 0xb
sub esp, 0x18
mov dword [ebp - 0x550], esp
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4d3720
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x40]
call fcn.004092f8
mov ecx, dword [ebp - 0x550]
or edi, 0x40
mov dword [ebp - 0x558], edi
mov dword [ecx], 0
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
xor ecx, ecx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov ecx, dword [ebp - 0x55c]
mov byte [ebp - 4], 0xd
call fcn.004d2f40
test eax, eax
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x2c]
sete byte [ebp - 0x53d]
cmp edx, 8
jb 0x4d37d5
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d37cb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d4075
push edx
push ecx
call fcn.0056d0c8
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
and edi, 0xffffffef
mov word [ebp - 0x40], ax
mov dword [ebp - 0x2c], 7
add esi, 0xfffffff0
mov dword [ebp - 0x558], edi
or eax, 0xffffffff
mov byte [ebp - 4], 8
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4d380e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x53d], 0
jne 0x4d3903
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x54c]
cmp ecx, 8
jb 0x4d385f
mov edx, dword [ebp - 0x544]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4d3855
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d4084
push ecx
push edx
call fcn.0056d0c8
add esp, 8
mov esi, dword [ebp - 0x570]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
test eax, eax
je 0x4d3893
test ecx, ecx
je 0x4d3893
lea ecx, [ebp - 0x53c]
push ecx
push eax
call esi
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x4d3167
cmp dword [ebp + 0x1c], 8
lea ecx, [ebp + 8]
cmovae ecx, dword [ebp + 8]
sub esp, 0x18
mov edi, esp
mov dword [ebp - 0x550], ecx
mov esi, ecx
mov dword [ebp - 0x54c], edi
mov dword [edi], 0
mov dword [edi + 0x10], 0
lea edx, [esi + 2]
mov dword [edi + 0x14], 7
nop dword [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4d38d0
sub esi, edx
sar esi, 1
cmp esi, 7
ja 0x4d396a
mov dword [edi + 0x10], esi
add esi, esi
push esi
push ecx
push edi
call fcn.00570d00
add esp, 0xc
xor eax, eax
mov word [esi + edi], ax
jmp 0x4d3a2f
mov ecx, dword [ebp - 0x54c]
cmp ecx, 8
jb 0x4d3943
mov edx, dword [ebp - 0x544]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4d3939
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d4084
push ecx
push edx
call fcn.0056d0c8
add esp, 8
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], 0
test eax, eax
je 0x4d3963
cmp eax, 0xffffffff
je 0x4d3963
push eax
call dword [sym.imp.KERNEL32.DLL_FindClose]
xor esi, esi
jmp 0x4d3fa7
cmp esi, 0x7ffffffe
ja 0x4d4098
mov edi, esi
or edi, 7
cmp edi, 0x7ffffffe
jbe 0x4d3994
mov dword [ebp - 0x544], SysStringLen
mov eax, 0xfffffffe
jmp 0x4d39bb
mov eax, 0xa
cmp edi, eax
cmovb edi, eax
mov dword [ebp - 0x544], edi
lea eax, [edi + 1]
cmp eax, 0x7fffffff
ja 0x4d4093
add eax, eax
cmp eax, 0x1000
jb 0x4d39e2
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d4093
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d409d
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x4d39fd
test eax, eax
je 0x4d39fb
push eax
call fcn.005a1c68
mov edi, eax
add esp, 4
test edi, edi
je 0x4d40ae
jmp 0x4d39fd
xor edi, edi
mov ecx, dword [ebp - 0x54c]
mov eax, dword [ebp - 0x544]
mov dword [ecx + 0x10], esi
add esi, esi
push esi
push dword [ebp - 0x550]
mov dword [ecx + 0x14], eax
push edi
call fcn.00570780
add esp, 0xc
xor eax, eax
mov word [esi + edi], ax
mov eax, dword [ebp - 0x54c]
mov dword [eax], edi
mov ecx, dword [ebp - 0x55c]
call fcn.004d4140
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], 0
test eax, eax
je 0x4d3a5a
cmp eax, 0xffffffff
je 0x4d3a5a
push eax
call dword [sym.imp.KERNEL32.DLL_FindClose]
mov esi, 1
jmp 0x4d3fa7
cmp dword [ebp + 0x34], 8
cmovae eax, dword [ebp + 0x20]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
mov edx, SysReAllocString
mov eax, dword [sym.imp.KERNEL32.DLL_MoveFileW]
mov dword [ebp - 0x54c], eax
je 0x4d3d55
sub esp, 0x18
lea eax, [ebp + 0x20]
mov esi, esp
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
cmp dword [ebp + 0x34], 8
mov ecx, dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
mov dword [ebp - 0x544], ecx
mov dword [ebp - 0x550], eax
cmp ecx, 8
jae 0x4d3ad3
movups xmm0, xmmword [eax]
mov edi, 7
movups xmmword [esi], xmm0
jmp 0x4d3b5b
mov edi, ecx
or edi, 7
cmp edi, edx
cmova edi, edx
lea eax, [edi + 1]
cmp eax, 0x7fffffff
ja 0x4d4093
add eax, eax
cmp eax, 0x1000
jb 0x4d3b1b
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d4093
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d40bf
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d3b36
test eax, eax
je 0x4d3b34
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d40d0
jmp 0x4d3b36
xor ecx, ecx
mov eax, dword [ebp - 0x544]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x550]
push ecx
call fcn.00570780
mov ecx, dword [ebp - 0x544]
add esp, 0xc
lea eax, [ebp - 0x28]
mov dword [esi + 0x10], ecx
push eax
mov dword [esi + 0x14], edi
call fcn.004d1cb0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
lea eax, [ebp + 0x20]
cmovae ecx, dword [ebp - 0x28]
cmp dword [ebp + 0x34], 8
push ecx
cmovae eax, dword [ebp + 0x20]
push eax
call dword [ebp - 0x54c]
test eax, eax
je 0x4d3da6
mov eax, dword [ebp - 0x55c]
add eax, 0x2c
mov dword [ebp - 0x554], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
je 0x4d3c9f
mov dword [esi], 0
lea edi, [ebp - 0x28]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
cmp dword [ebp - 0x14], 8
mov ecx, dword [ebp - 0x18]
cmovae edi, dword [ebp - 0x28]
mov dword [ebp - 0x544], ecx
mov dword [ebp - 0x550], edi
cmp ecx, 8
jae 0x4d3bfc
movups xmm0, xmmword [edi]
mov edi, 7
movups xmmword [esi], xmm0
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
add dword [eax + 4], 0x18
jmp 0x4d3cab
mov edi, ecx
mov eax, SysReAllocString
or edi, 7
cmp edi, 0x7ffffffe
cmova edi, eax
lea eax, [edi + 1]
cmp eax, 0x7fffffff
ja 0x4d4093
add eax, eax
cmp eax, 0x1000
jb 0x4d3c4d
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d4093
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d40e1
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d3c68
test eax, eax
je 0x4d3c66
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d40f2
jmp 0x4d3c68
xor ecx, ecx
mov eax, dword [ebp - 0x544]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x550]
push ecx
call fcn.00570780
mov eax, dword [ebp - 0x554]
add esp, 0xc
mov ecx, dword [ebp - 0x544]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
add dword [eax + 4], 0x18
jmp 0x4d3cab
lea ecx, [ebp - 0x28]
push ecx
push esi
mov ecx, eax
call fcn.0044c8ea
mov esi, dword [ebp - 0x55c]
cmp dword [esi], 0
je 0x4d3d12
lea ecx, [ebp - 0xa4]
call fcn.004d2e70
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xa4], 1
call fcn.00405d53
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push dword [ebp + 0x18]
cmovae eax, dword [ebp + 8]
lea ecx, [ebp - 0x88]
push eax
call fcn.00407684
lea eax, [ebp - 0xa4]
push eax
lea ecx, [esi + 0x20]
call fcn.004d78c0
lea ecx, [ebp - 0xa4]
call fcn.004d2ea0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x4d3d50
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d3d46
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d4103
push edx
push ecx
call fcn.0056d0c8
add esp, 8
mov edx, SysReAllocString
sub esp, 0x18
lea eax, [ebp + 0x20]
mov dword [ebp - 0x554], esp
sub esp, 0x18
mov esi, esp
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
cmp dword [ebp + 0x34], 8
mov ecx, dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
mov dword [ebp - 0x544], ecx
mov dword [ebp - 0x550], eax
cmp ecx, 8
jae 0x4d3e15
movups xmm0, xmmword [eax]
mov edi, 7
movups xmmword [esi], xmm0
jmp 0x4d3ea1
mov esi, dword [ebp - 0x55c]
lea eax, [ebp + 0x20]
lea ecx, [esi + 8]
cmp ecx, eax
je 0x4d3dc7
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407684
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edx, dword [ebp - 0x14]
mov dword [esi + 4], eax
cmp edx, 8
jb 0x4d3eea
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d3e04
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d4108
push edx
push ecx
call fcn.0056d0c8
add esp, 8
xor esi, esi
jmp 0x4d3fa7
mov edi, ecx
or edi, 7
cmp edi, 0x7ffffffe
cmova edi, edx
lea eax, [edi + 1]
cmp eax, 0x7fffffff
ja 0x4d4093
add eax, eax
cmp eax, 0x1000
jb 0x4d3e61
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d4093
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d410d
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d3e7c
test eax, eax
je 0x4d3e7a
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d411e
jmp 0x4d3e7c
xor ecx, ecx
mov eax, dword [ebp - 0x544]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x550]
push ecx
call fcn.00570780
mov ecx, dword [ebp - 0x544]
add esp, 0xc
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp - 0x554]
mov dword [esi + 0x14], edi
call fcn.004d0150
mov edi, dword [ebp - 0x55c]
add esp, 0x18
mov ecx, edi
call fcn.004d6570
test eax, eax
jne 0x4d3ef1
lea ecx, [edi + 8]
lea eax, [ebp + 0x20]
cmp ecx, eax
je 0x4d3ee1
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407684
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [edi + 4], eax
xor esi, esi
jmp 0x4d3fa7
cmp dword [ebp + 0x34], 8
lea ecx, [ebp + 0x20]
lea eax, [ebp + 8]
cmovae ecx, dword [ebp + 0x20]
cmp dword [ebp + 0x1c], 8
push ecx
cmovae eax, dword [ebp + 8]
push eax
call dword [ebp - 0x54c]
mov esi, eax
test esi, esi
jne 0x4d3f3b
lea ecx, [edi + 8]
lea eax, [ebp + 0x20]
cmp ecx, eax
je 0x4d3f30
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407684
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [edi + 4], eax
jmp 0x4d3fa7
cmp dword [edi], 0
je 0x4d3fa7
lea ecx, [ebp - 0xd8]
call fcn.004d2e70
mov byte [ebp - 4], 0x10
lea eax, [ebp + 0x20]
cmp dword [ebp + 0x34], 8
lea ecx, [ebp - 0xd4]
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
mov dword [ebp - 0xd8], 1
call fcn.00407684
cmp dword [ebp + 0x34], 8
lea eax, [ebp + 0x20]
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
lea ecx, [ebp - 0xbc]
push eax
call fcn.00407684
lea eax, [ebp - 0xd8]
push eax
lea ecx, [edi + 0x20]
call fcn.004d78c0
lea ecx, [ebp - 0xd8]
call fcn.004d2ea0
mov edx, dword [ebp + 0x1c]
cmp edx, 8
jb 0x4d3fe1
mov ecx, dword [ebp + 8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d3fd7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d412f
push edx
push ecx
call fcn.0056d0c8
add esp, 8
mov edx, dword [ebp + 0x34]
xor eax, eax
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 7
mov word [ebp + 8], ax
cmp edx, 8
jb 0x4d402f
mov ecx, dword [ebp + 0x20]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d4025
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d412f
push edx
push ecx
call fcn.0056d0c8
add esp, 8
mov eax, esi
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.0056d855
mov esp, ebp
pop ebp
ret 0x30
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
call fcn.004072dc
call fcn.0057b201
push 0x80070057
call fcn.0040b92b
call fcn.0057b201
push 0x80004005
call fcn.0040b92b
call fcn.00407541
call fcn.004072dc
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
call fcn.0057b201
call fcn.0057b201
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
call fcn.0057b201
int3