Function at 0x468624
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x48]
mov edx, dword [0x41b73c]
call fcn.00406ccc
xor eax, eax
push ebp
push 0x469864
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x40a2e4]
call fcn.00407b1c
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x4686b9
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x4686b9
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.0040738c
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.0040738c
mov dword [0x549668], eax
mov dword [0x54966c], edx
push 0x469874
mov eax, dword [0x549664]
push eax
call fcn.0040929c
test eax, eax
setne byte [0x549670]
cmp byte [0x549670], 0
je 0x4686e0
call fcn.004683e4
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x468703
push 0x4698b4
push 0x4698cc
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.0040929c
mov dword [0x549680], eax
mov eax, dword [0x550b68]
mov dword [eax], fcn.00467ab4
mov eax, dword [0x550d20]
mov dword [eax], 0x43dbbc
mov eax, dword [0x551424]
mov dword [eax], 0x43e1d4
mov eax, 0x467c20
mov edx, dword [0x551098]
mov dword [edx], eax
push 0x4698dc
push 0x4698f4
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.0040929c
mov dword [0x54968c], eax
push 0x469910
push 0x46992c
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.0040929c
mov dword [0x549690], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x549664]
call fcn.00442858
mov edx, dword [ebp - 0xd4]
mov eax, 0x549ea8
call fcn.00408310
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4687e3
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4687e3
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x4687e3
mov eax, dword [0x549664]
call fcn.00467d2c
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x549664]
je 0x4687e3
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.00467d2c
call fcn.004682f4
push 0x555d60
call sub.kernel32.dll_InitializeCriticalSection
push 0x555d48
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4697e7
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.00434ec8
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040ce70
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x46994c
call fcn.00405900
mov eax, dword [ebp - 0xd8]
call fcn.00405b78
push eax
push 0x14
push 0
push 4
lea eax, [ebp - 0xbc]
push eax
push 0xffffffffffffffff
call sub.kernel32.dll_CreateFileMappingA
mov ebx, eax
call sub.kernel32.dll_GetLastError_1
test eax, eax
jne 0x468919
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x549688], eax
mov eax, dword [0x549688]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.00408fdc
mov edx, dword [0x549688]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.00408fdc
mov edx, dword [0x549688]
mov dword [edx + 4], eax
mov eax, dword [0x549688]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x549688]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.00433c14
cmp dword [ebp - 4], 0
je 0x46890b
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x549544], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x469970
xor edx, edx
call fcn.00435898
jmp 0x468963
mov eax, dword [0x551498]
mov eax, dword [eax]
mov dword [0x549544], eax
jmp 0x468963
test ebx, ebx
je 0x468949
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x549688], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x549688]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x468963
push 0
push 0x469988
push 0x469994
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x549688], 0
jne 0x468986
push 0
push 0x469988
push 0x4699bc
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x549544], 0
jne 0x468a00
push 0xffffffffffffffff
mov eax, dword [0x549688]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x4689e4
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x549688]
mov eax, dword [eax + 8]
test eax, eax
je 0x4689c8
mov edx, dword [eax]
mov dword [0x549544], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x4689b9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4689eb
mov eax, dword [0x549688]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x549664]
je 0x468a1c
cmp byte [0x549670], 0
jne 0x468a1c
xor ebx, ebx
jmp 0x468a1e
mov bl, 1
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4697de
mov eax, 0x5495f0
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x5495f4
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x5495f8
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x5495fc
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549600
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549604
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549608
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x54960c
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549610
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549614
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549618
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x54961c
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549628
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x54962c
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549630
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549634
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549638
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x54963c
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549640
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549644
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549648
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x54964c
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549650
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549654
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549658
mov edx, dword [0x549664]
call fcn.00467c3c
mov eax, 0x549660
mov edx, dword [0x549664]
call fcn.00467c3c
cmp dword [0x549638], 0
je 0x468bfb
cmp dword [0x5495f0], 0
je 0x468bfb
cmp dword [0x5495f8], 0
je 0x468bfb
cmp dword [0x549600], 0
jne 0x468fb7
test bl, bl
je 0x468fb7
mov esi, fcn.00408408
cmp word [esi], 0x25ff
jne 0x468c38
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x550d4c]
mov edi, dword [edi]
lea ecx, [ebp - 8]
lea edx, [ebp - 0x50]
mov eax, esi
call edi
mov eax, dword [ebp - 0x50]
cmp eax, dword [0x549664]
jne 0x468c38
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x4699f8
mov ecx, 0x78
mov edx, 0x469a40
mov eax, dword [ebp - 0x50]
call fcn.00467f9c
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x468c70
push 0x469a50
mov ecx, 0x78
mov edx, 0x469a70
mov eax, esi
call fcn.00467f9c
mov dword [ebp - 0x50], eax
push 0x469a80
mov ecx, 0x78
mov edx, 0x469ac8
xor eax, eax
call fcn.00467f9c
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [0x549638], 0
jne 0x468f20
cmp dword [ebp - 0x50], 0
je 0x468f20
push 0x469ad0
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x549608], eax
cmp dword [0x549608], 0
je 0x468f17
mov eax, dword [0x549608]
cmp byte [eax], 0xe9
je 0x468f17
push 0x469b30
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x54960c], eax
push 0x469b8c
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x549610], eax
push 0x469bd0
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x549614], eax
push 0x469c5c
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x549618], eax
push 0x469cac
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x54961c], eax
push 0x469cec
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x549620], eax
push 0x469d28
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x549624], eax
push 0x469d64
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
mov dword [0x549628], eax
push 0x469da4
mov eax, dword [ebp - 0x50]
push eax
call fcn.0040929c
lea edx, [ebp - 0x8c]
call fcn.0041f844
mov byte [ebp - 0x49], 1
jmp 0x468efd
cmp dword [ebp - 0x84], 0
je 0x468ed8
cmp byte [ebp - 0x85], 0
je 0x468ed8
cmp dword [ebp - 0x78], 4
jne 0x468ed8
cmp byte [ebp - 0x49], 0
je 0x468e4d
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.0041f844
jmp 0x468e30
cmp word [ebp - 0xae], 0xc7
jne 0x468e08
cmp byte [ebp - 0xac], 0x40
jne 0x468e08
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x468e08
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x549640], eax
jmp 0x468ed8
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.0041f844
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0xb0]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0xb0], 0
je 0x468ed8
cmp word [ebp - 0xae], 0xc3
jne 0x468dd1
jmp 0x468ed8
mov eax, dword [ebp - 0x84]
mov dword [0x549638], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x549638]
call fcn.0041f844
jmp 0x468ec2
cmp dword [ebp - 0x84], 0
je 0x468e9d
cmp word [ebp - 0x8a], 0xe8
jne 0x468e9d
cmp byte [ebp - 0x85], 0
je 0x468e9d
cmp dword [ebp - 0x78], 4
jne 0x468e9d
mov eax, dword [ebp - 0x84]
mov dword [0x54963c], eax
jmp 0x468f20
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x8c], 0
je 0x468f20
cmp word [ebp - 0x8a], 0xc3
jne 0x468e6a
jmp 0x468f20
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
push esi
push edi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp byte [ebp - 0x8c], 0
je 0x468f20
cmp word [ebp - 0x8a], 0xc3
jne 0x468d8c
jmp 0x468f20
xor ebx, ebx
xor eax, eax
mov dword [0x549608], eax
test bl, bl
je 0x468fb7
cmp dword [0x5495f0], 0
jne 0x468f55
test esi, esi
je 0x468f55
push 0x469e2c
push esi
call fcn.0040929c
mov dword [0x5495f0], eax
push 0x469ea0
push esi
call fcn.0040929c
mov dword [0x5495f4], eax
cmp dword [0x5495f8], 0
jne 0x468f82
test edi, edi
je 0x468f82
push 0x469f18
push edi
call fcn.0040929c
mov dword [0x5495f8], eax
push 0x469f8c
push edi
call fcn.0040929c
mov dword [0x5495fc], eax
cmp dword [0x549600], 0
jne 0x468fb7
cmp dword [ebp - 0x54], 0
je 0x468fb7
push 0x46a004
mov eax, dword [ebp - 0x54]
push eax
call fcn.0040929c
mov dword [0x549600], eax
push 0x46a080
mov eax, dword [ebp - 0x54]
push eax
call fcn.0040929c
mov dword [0x549604], eax
mov eax, dword [0x550db0]
mov dword [0x549fdc], eax
cmp dword [0x549640], 0
je 0x468fd9
mov edx, 0x465928
mov eax, dword [0x549640]
call fcn.0045dd0c
cmp dword [0x5495f0], 0
je 0x468ff1
mov edx, 0x464f4c
mov eax, dword [0x5495f0]
call fcn.0045dd0c
cmp dword [0x5495f4], 0
je 0x469009
mov edx, 0x464f24
mov eax, dword [0x5495f4]
call fcn.0045dd0c
cmp dword [0x5495f8], 0
je 0x469021
mov edx, 0x464f4c
mov eax, dword [0x5495f8]
call fcn.0045dd0c
cmp dword [0x5495fc], 0
je 0x469039
mov edx, 0x464f24
mov eax, dword [0x5495fc]
call fcn.0045dd0c
cmp dword [0x549600], 0
je 0x469051
mov edx, 0x464f4c
mov eax, dword [0x549600]
call fcn.0045dd0c
cmp dword [0x549604], 0
je 0x469069
mov edx, 0x464f24
mov eax, dword [0x549604]
call fcn.0045dd0c
cmp dword [0x549608], 0
je 0x469081
mov edx, 0x464ef8
mov eax, dword [0x549608]
call fcn.0045dd0c
cmp dword [0x54962c], 0
je 0x469099
mov edx, 0x464f90
mov eax, dword [0x54962c]
call fcn.0045dd0c
cmp dword [0x549630], 0
je 0x4690b1
mov edx, 0x464fb8
mov eax, dword [0x549630]
call fcn.0045dd0c
cmp dword [0x549634], 0
je 0x4690db
mov byte [0x5495d8], 1
mov eax, 0x18
call fcn.00403048
mov dword [0x549ff0], eax
mov eax, dword [0x549ff0]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x54960c], 0
je 0x4691b3
cmp dword [0x549610], 0
je 0x4691b3
lea edx, [ebp - 0x48]
mov eax, dword [0x54960c]
call fcn.00420b44
mov eax, dword [ebp - 0x28]
call fcn.00407834
dec eax
jne 0x469118
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x54960c], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x549610]
call fcn.00420b44
mov eax, dword [ebp - 0x28]
call fcn.00407834
dec eax
jne 0x46913b
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x549610], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x54960c]
call fcn.0041f844
jmp 0x4691a1
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x469180
cmp esi, dword [0x549610]
jne 0x469180
cmp dword [ebp - 0x78], 4
jne 0x4691b3
cmp byte [ebp - 0x85], 0
je 0x4691b3
mov edx, 0x4651a8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045dd64
jmp 0x4691b3
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46914d
cmp dword [0x549628], 0
je 0x469249
mov esi, fcn.0040313c
cmp word [esi], 0x25ff
jne 0x4691d3
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x549628]
call fcn.0041f844
jmp 0x469237
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x469214
cmp esi, edi
jne 0x469214
cmp dword [ebp - 0x78], 4
jne 0x469249
cmp byte [ebp - 0x85], 0
je 0x469249
mov edx, 0x465068
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045dd64
jmp 0x469249
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4691e5
call fcn.00467c58
lea edx, [ebp - 0x8c]
call fcn.0041f844
mov byte [ebp - 0x49], 0
jmp 0x4692b4
cmp byte [ebp - 0x85], 0
je 0x469293
cmp dword [ebp - 0x78], 4
jne 0x469293
cmp dword [ebp - 0x84], 0
je 0x469293
cmp byte [ebp - 0x49], 0
je 0x46928f
mov edx, 0x4650c4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045dd64
jmp 0x4692c6
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46925f
call fcn.00467c58
lea edx, [ebp - 0x8c]
call fcn.0041f844
jmp 0x46932c
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46930b
cmp esi, dword [0x54963c]
jne 0x46930b
cmp dword [ebp - 0x78], 4
jne 0x46933e
cmp byte [ebp - 0x85], 0
je 0x46933e
mov edx, 0x46528c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045dd64
jmp 0x46933e
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4692d8
mov esi, dword [0x549638]
test esi, esi
je 0x4693c2
cmp dword [0x54963c], 0
je 0x4693c2
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041f844
jmp 0x4693b0
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x54963c]
jne 0x46938f
cmp dword [ebp - 0x78], 4
jne 0x4693c2
cmp byte [ebp - 0x85], 0
je 0x4693c2
mov edx, 0x465294
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045dd64
jmp 0x4693c2
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x469360
mov esi, dword [0x54963c]
test esi, esi
je 0x46943d
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041f844
jmp 0x46942b
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x54963c]
jne 0x46940a
cmp dword [ebp - 0x78], 4
jne 0x46943d
cmp byte [ebp - 0x85], 0
je 0x46943d
mov edx, 0x4652a4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045dd64
jmp 0x46943d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4693db
call fcn.00467c94
lea edx, [ebp - 0x8c]
call fcn.0041f844
jmp 0x469470
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4694b1
cmp word [ebp - 0x8a], 0x8b
jne 0x46949f
cmp byte [ebp - 0x88], 0x15
jne 0x46949f
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x550db0]
cmp eax, edx
je 0x4694b1
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46944f
cmp word [ebp - 0x8a], 0x8b
jne 0x4694cc
mov edx, 0x549fe0
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045dd64
call fcn.00467ca8
lea edx, [ebp - 0x8c]
call fcn.0041f844
jmp 0x4694ff
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x469540
cmp word [ebp - 0x8a], 0xff
jne 0x46952e
cmp byte [ebp - 0x88], 0x15
jne 0x46952e
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x550db0]
cmp eax, edx
je 0x469540
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4694de
cmp word [ebp - 0x8a], 0xff
jne 0x46955b
mov edx, 0x549fe4
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045dd64
mov eax, dword [0x55124c]
mov eax, dword [eax]
mov dword [0x549fe8], eax
call fcn.00467cbc
lea edx, [ebp - 0x8c]
call fcn.0041f844
jmp 0x46959a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4695c9
cmp word [ebp - 0x8a], 0xff
jne 0x4695b7
cmp byte [ebp - 0x88], 0x25
je 0x4695c9
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x469579
cmp word [ebp - 0x8a], 0xff
jne 0x4695e4
mov edx, 0x549fec
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045dd64
call fcn.00467c80
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041f844
jmp 0x46961d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
cmp byte [ebp - 0x8c], 0
je 0x46962f
cmp byte [ebp - 0x87], 0
je 0x4695fa
mov eax, dword [ebp - 0x84]
mov dword [0x5496c0], eax
mov edx, 0x46598c
mov eax, esi
call fcn.0045dd0c
lea edx, [ebp - 0x8c]
mov eax, fcn.00404224
call fcn.0041f844
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x469664
mov esi, eax
jmp 0x469669
mov esi, fcn.00404224
call fcn.00467c44
lea edx, [ebp - 0x8c]
call fcn.0041f844
jmp 0x4696c7
cmp esi, dword [ebp - 0x84]
jne 0x4696a4
cmp dword [ebp - 0x78], 4
jne 0x4696d9
cmp byte [ebp - 0x85], 0
je 0x4696d9
mov edx, 0x465c68
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045dd64
jmp 0x4696d9
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f844
push esi
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46967b
call fcn.00467c6c
mov edx, 0x465c78
call fcn.0045dd0c
cmp dword [0x549614], 0
je 0x46973b
cmp dword [0x54961c], 0
je 0x46973b
mov edx, 0x46420c
mov eax, dword [0x549614]
call fcn.0045dd0c
mov edx, 0x40a47c
mov eax, dword [0x54961c]
call fcn.0045dd0c
cmp dword [0x549618], 0
je 0x469730
mov edx, 0x464268
mov eax, dword [0x549618]
call fcn.0045dd0c
mov eax, dword [0x551120]
mov dword [eax], 0x464194
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.0045c000
call fcn.0043d184
mov esi, fcn.00405440
cmp word [esi], 0x25ff
jne 0x469767
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x549ffc], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00420b44
cmp byte [ebp - 0x48], 0
je 0x469788
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x54a000], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x549664]
je 0x4697a0
cmp byte [0x549670], 0
je 0x4697aa
mov eax, dword [0x549ea8]
call fcn.00466838
mov eax, ebx
call fcn.004377d4
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x4697d9
mov eax, dword [0x549ea8]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x549eec], eax
call fcn.0043d818
call fcn.0045c19c
mov eax, 0x464ba8
test eax, eax
jmp 0x469817
lea eax, [ebp - 4]
call fcn.00433c14
cmp dword [ebp - 4], 0
je 0x469801
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x549544], eax
jmp 0x46980d
mov eax, dword [0x551498]
mov eax, dword [eax]
mov dword [0x549544], eax
mov eax, 0x549ea8
call fcn.004082f8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46986b
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.004054e0
lea eax, [ebp - 0xd4]
call fcn.004082f8
lea eax, [ebp - 0x48]
mov edx, dword [0x41b73c]
call fcn.00406da4
lea eax, [ebp - 8]
call fcn.004054bc
lea eax, [ebp - 4]
mov edx, dword [0x40a2e4]
call fcn.00407b1c
ret