Function at 0x405600
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58f94d
mov eax, dword fs:[0]
push eax
sub esp, 0x478
mov eax, dword [0x5fcff4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x468], esi
mov eax, 1
push 0x400
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x474], eax
lea eax, [ebp - 0x424]
push 0
push eax
call fcn.00564770
add esp, 0xc
push str.GlobalVW6154VciShareMemoryFunc
push 0
push 6
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov dword [ebp - 0x464], eax
test eax, eax
je 0x405737
push 0x400
push 0
push 0
push 6
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x458], eax
test eax, eax
je 0x40572b
mov esi, eax
lea edi, [ebp - 0x424]
mov ecx, 0x100
rep movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
call esi
mov edi, eax
mov dword [ebp - 0x46c], edx
mov eax, dword [ebp - 0x458]
mov byte [eax], 1
cmp byte [eax], 2
je 0x4056ed
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
call esi
sub eax, edi
sbb edx, dword [ebp - 0x46c]
test edx, edx
ja 0x405718
jb 0x4056e5
cmp eax, 0x3e8
jae 0x405718
mov eax, dword [ebp - 0x458]
jmp 0x4056c1
mov esi, eax
lea edi, [ebp - 0x424]
push 0x3ff
inc eax
mov ecx, 0x100
push 0
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.00564770
mov eax, dword [ebp - 0x458]
add esp, 0xc
mov byte [eax], 0
jmp 0x40571e
mov eax, dword [ebp - 0x458]
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov esi, dword [ebp - 0x468]
push dword [ebp - 0x464]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [ebp - 0x424], 2
jne 0x405ba6
mov eax, dword [esi]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x18b
push dword [eax + 0x378]
call edi
mov esi, eax
test esi, esi
jle 0x405780
mov eax, dword [ebp - 0x468]
push 0
push esi
push 0x182
mov eax, dword [eax]
push dword [eax + 0x378]
call edi
sub esi, 1
jns 0x405763
mov edx, dword [ebp - 0x41f]
lea ecx, [ebp - 0x41b]
mov byte [ebp - 0x14], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x24], xmm0
test edx, edx
je 0x405ba6
xor edi, edi
xor eax, eax
xor esi, esi
mov dword [ebp - 0x458], edi
mov dword [ebp - 0x480], edi
mov dword [ebp - 0x47c], esi
mov dword [ebp - 0x464], eax
mov dword [ebp - 0x478], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x46c], eax
test edx, edx
je 0x405b4b
nop dword [eax]
nop dword [eax + eax]
movups xmm0, xmmword [ecx]
add ecx, 0x10
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x484], ecx
lea ecx, [ebp - 0x24]
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 0x428], 0
lea edx, [ecx + 1]
xorps xmm0, xmm0
movups xmmword [ebp - 0x43c], xmm0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405814
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x43c]
call fcn.00407380
mov ecx, esi
mov byte [ebp - 4], 1
sub ecx, dword [ebp - 0x458]
mov eax, 0x2aaaaaab
imul ecx
xor edi, edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x474], eax
je 0x4058f7
mov edx, dword [ebp - 0x428]
cmp edx, 0x10
mov eax, dword [ebp - 0x43c]
mov esi, dword [ebp - 0x458]
setae byte [ebp - 0x459]
mov dword [ebp - 0x460], eax
nop word [eax + eax]
cmp edx, 0x10
lea ecx, [ebp - 0x43c]
cmovae ecx, eax
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x405896
mov eax, dword [esi]
push dword [ebp - 0x42c]
mov edx, dword [esi + 0x10]
push ecx
mov ecx, eax
call fcn.00406d10
add esp, 8
test al, al
jne 0x4058d0
mov eax, dword [ebp - 0x460]
inc edi
mov edx, dword [ebp - 0x428]
add esi, 0x18
cmp edi, dword [ebp - 0x474]
jb 0x405880
mov esi, dword [ebp - 0x47c]
mov ecx, eax
jmp 0x4058fd
cmp byte [ebp - 0x459], 0
lea eax, [ebp - 0x43c]
mov esi, dword [ebp - 0x47c]
cmovne eax, dword [ebp - 0x460]
mov dword [ebp - 0x42c], 0
mov byte [eax], 0
mov ecx, dword [ebp - 0x43c]
cmp dword [ebp - 0x42c], 0
je 0x405ae5
lea eax, [ebp - 0x43c]
push eax
cmp esi, dword [ebp - 0x464]
je 0x40592b
mov ecx, esi
call fcn.00406f50
add esi, 0x18
mov dword [ebp - 0x47c], esi
jmp 0x40594f
push esi
lea ecx, [ebp - 0x480]
call fcn.00406a60
mov eax, dword [ebp - 0x478]
mov dword [ebp - 0x464], eax
mov eax, dword [ebp - 0x480]
mov dword [ebp - 0x458], eax
mov eax, dword [ebp - 0x468]
xorps xmm0, xmm0
mov ecx, 7
mov dword [ebp - 0x444], 0
movups xmmword [ebp - 0x454], xmm0
mov dword [ebp - 0x440], ecx
mov eax, dword [eax]
mov dword [ebp - 0x460], eax
xor eax, eax
mov word [ebp - 0x454], ax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x470]
or eax, 1
cmp byte [ebp - 0x24], 0
mov dword [ebp - 0x474], eax
je 0x405a49
lea ecx, [ebp - 0x24]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4059a8
push 0
push 0
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
xor ecx, ecx
mov edx, 2
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042651d
lea ecx, [ebp - 0x24]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4059f0
push edi
push esi
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, esi
xor eax, eax
mov word [esi + edi*2], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405a15
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x454]
call fcn.004062c0
push esi
call fcn.00426526
mov dword [ebp - 4], 1
add esp, 4
mov ecx, dword [ebp - 0x440]
jmp 0x405a50
mov dword [ebp - 4], 1
xor eax, eax
cmp ecx, 8
mov dword [ebp - 0x470], eax
lea eax, [ebp - 0x454]
cmovae eax, dword [ebp - 0x454]
push eax
mov eax, dword [ebp - 0x460]
push 0
push 0x180
push dword [eax + 0x378]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x440]
cmp ecx, 8
jb 0x405ac2
mov edx, dword [ebp - 0x454]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x405ab8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405bd6
push ecx
push edx
call fcn.00561389
add esp, 8
mov ecx, dword [ebp - 0x43c]
xor eax, eax
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x440], 7
mov word [ebp - 0x454], ax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
cmp eax, 0x10
jb 0x405b1f
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x405b15
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405bd6
push edx
push ecx
call fcn.00561389
add esp, 8
mov eax, dword [ebp - 0x46c]
mov esi, dword [ebp - 0x47c]
inc eax
mov dword [ebp - 0x46c], eax
cmp eax, dword [ebp - 0x41f]
jae 0x405b45
mov ecx, dword [ebp - 0x484]
jmp 0x4057e0
mov edi, dword [ebp - 0x458]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x405ba6
push ecx
mov edx, esi
mov ecx, edi
call fcn.00406670
mov ecx, dword [ebp - 0x464]
mov eax, 0x2aaaaaab
sub ecx, edi
add esp, 4
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, edi
shl ecx, 3
cmp ecx, 0x1000
jb 0x405b9c
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405bd6
push ecx
push edi
call fcn.00561389
add esp, 8
mov eax, dword [ebp - 0x468]
push 1
mov ecx, dword [eax]
add ecx, 0x658
call fcn.0041ff47
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.00560f1e
mov esp, ebp
pop ebp
ret
call fcn.00567a6f
int3