Function at 0x4682a4
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 [0x41b5ac]
call fcn.00406bd0
xor eax, eax
push ebp
push 0x4694e4
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x40a154]
call fcn.00407888
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x468339
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x468339
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.004070f8
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.004070f8
mov dword [0x524668], eax
mov dword [0x52466c], edx
push 0x4694f4
mov eax, dword [0x524664]
push eax
call fcn.00409134
test eax, eax
setne byte [0x524670]
cmp byte [0x524670], 0
je 0x468360
call fcn.00468064
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x468383
push 0x469534
push 0x46954c
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.00409134
mov dword [0x524680], eax
mov eax, dword [0x5299c0]
mov dword [eax], fcn.00467734
mov eax, dword [0x529c20]
mov dword [eax], 0x43d944
mov eax, dword [0x52a43c]
mov dword [eax], 0x43df5c
mov eax, 0x4678a0
mov edx, dword [0x52a040]
mov dword [edx], eax
push 0x46955c
push 0x469574
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00409134
mov dword [0x52468c], eax
push 0x469590
push 0x4695ac
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00409134
mov dword [0x524690], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x524664]
call fcn.004425e0
mov edx, dword [ebp - 0xd4]
mov eax, 0x524ea8
call fcn.0040807c
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x468463
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x468463
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x468463
mov eax, dword [0x524664]
call fcn.004679ac
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x524664]
je 0x468463
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.004679ac
call fcn.00467f74
push 0x52ed5c
call sub.kernel32.dll_InitializeCriticalSection
push 0x52ed44
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x469467
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.00434c50
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040cce0
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x4695cc
call fcn.00405944
mov eax, dword [ebp - 0xd8]
call fcn.00405bbc
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 0x468599
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x524688], eax
mov eax, dword [0x524688]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.00408e74
mov edx, dword [0x524688]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.00408e74
mov edx, dword [0x524688]
mov dword [edx + 4], eax
mov eax, dword [0x524688]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x524688]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.0043399c
cmp dword [ebp - 4], 0
je 0x46858b
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x524544], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x4695f0
xor edx, edx
call fcn.00435620
jmp 0x4685e3
mov eax, dword [0x52a4a8]
mov eax, dword [eax]
mov dword [0x524544], eax
jmp 0x4685e3
test ebx, ebx
je 0x4685c9
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x524688], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x524688]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x4685e3
push 0
push 0x469608
push 0x469614
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x524688], 0
jne 0x468606
push 0
push 0x469608
push 0x46963c
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x524544], 0
jne 0x468680
push 0xffffffffffffffff
mov eax, dword [0x524688]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x468664
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x524688]
mov eax, dword [eax + 8]
test eax, eax
je 0x468648
mov edx, dword [eax]
mov dword [0x524544], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x468639
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46866b
mov eax, dword [0x524688]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x524664]
je 0x46869c
cmp byte [0x524670], 0
jne 0x46869c
xor ebx, ebx
jmp 0x46869e
mov bl, 1
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x46945e
mov eax, 0x5245f0
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x5245f4
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x5245f8
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x5245fc
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524600
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524604
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524608
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x52460c
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524610
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524614
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524618
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x52461c
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524628
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x52462c
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524630
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524634
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524638
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x52463c
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524640
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524644
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524648
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x52464c
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524650
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524654
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524658
mov edx, dword [0x524664]
call fcn.004678bc
mov eax, 0x524660
mov edx, dword [0x524664]
call fcn.004678bc
cmp dword [0x524638], 0
je 0x46887b
cmp dword [0x5245f0], 0
je 0x46887b
cmp dword [0x5245f8], 0
je 0x46887b
cmp dword [0x524600], 0
jne 0x468c37
test bl, bl
je 0x468c37
mov esi, fcn.00408184
cmp word [esi], 0x25ff
jne 0x4688b8
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x529c70]
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 [0x524664]
jne 0x4688b8
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x469678
mov ecx, 0x78
mov edx, 0x4696c0
mov eax, dword [ebp - 0x50]
call fcn.00467c1c
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x4688f0
push 0x4696d0
mov ecx, 0x78
mov edx, 0x4696f0
mov eax, esi
call fcn.00467c1c
mov dword [ebp - 0x50], eax
push 0x469700
mov ecx, 0x78
mov edx, 0x469748
xor eax, eax
call fcn.00467c1c
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [0x524638], 0
jne 0x468ba0
cmp dword [ebp - 0x50], 0
je 0x468ba0
push 0x469750
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x524608], eax
cmp dword [0x524608], 0
je 0x468b97
mov eax, dword [0x524608]
cmp byte [eax], 0xe9
je 0x468b97
push 0x4697b0
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x52460c], eax
push 0x46980c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x524610], eax
push 0x469850
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x524614], eax
push 0x4698dc
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x524618], eax
push 0x46992c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x52461c], eax
push 0x46996c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x524620], eax
push 0x4699a8
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x524624], eax
push 0x4699e4
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
mov dword [0x524628], eax
push 0x469a24
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409134
lea edx, [ebp - 0x8c]
call fcn.0041f6b4
mov byte [ebp - 0x49], 1
jmp 0x468b7d
cmp dword [ebp - 0x84], 0
je 0x468b58
cmp byte [ebp - 0x85], 0
je 0x468b58
cmp dword [ebp - 0x78], 4
jne 0x468b58
cmp byte [ebp - 0x49], 0
je 0x468acd
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.0041f6b4
jmp 0x468ab0
cmp word [ebp - 0xae], 0xc7
jne 0x468a88
cmp byte [ebp - 0xac], 0x40
jne 0x468a88
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x468a88
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x524640], eax
jmp 0x468b58
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.0041f6b4
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 0x468b58
cmp word [ebp - 0xae], 0xc3
jne 0x468a51
jmp 0x468b58
mov eax, dword [ebp - 0x84]
mov dword [0x524638], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x524638]
call fcn.0041f6b4
jmp 0x468b42
cmp dword [ebp - 0x84], 0
je 0x468b1d
cmp word [ebp - 0x8a], 0xe8
jne 0x468b1d
cmp byte [ebp - 0x85], 0
je 0x468b1d
cmp dword [ebp - 0x78], 4
jne 0x468b1d
mov eax, dword [ebp - 0x84]
mov dword [0x52463c], eax
jmp 0x468ba0
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x468ba0
cmp word [ebp - 0x8a], 0xc3
jne 0x468aea
jmp 0x468ba0
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x468ba0
cmp word [ebp - 0x8a], 0xc3
jne 0x468a0c
jmp 0x468ba0
xor ebx, ebx
xor eax, eax
mov dword [0x524608], eax
test bl, bl
je 0x468c37
cmp dword [0x5245f0], 0
jne 0x468bd5
test esi, esi
je 0x468bd5
push 0x469aac
push esi
call fcn.00409134
mov dword [0x5245f0], eax
push 0x469b20
push esi
call fcn.00409134
mov dword [0x5245f4], eax
cmp dword [0x5245f8], 0
jne 0x468c02
test edi, edi
je 0x468c02
push 0x469b98
push edi
call fcn.00409134
mov dword [0x5245f8], eax
push 0x469c0c
push edi
call fcn.00409134
mov dword [0x5245fc], eax
cmp dword [0x524600], 0
jne 0x468c37
cmp dword [ebp - 0x54], 0
je 0x468c37
push 0x469c84
mov eax, dword [ebp - 0x54]
push eax
call fcn.00409134
mov dword [0x524600], eax
push 0x469d00
mov eax, dword [ebp - 0x54]
push eax
call fcn.00409134
mov dword [0x524604], eax
mov eax, dword [0x529cf8]
mov dword [0x524fdc], eax
cmp dword [0x524640], 0
je 0x468c59
mov edx, 0x4655a8
mov eax, dword [0x524640]
call fcn.0045d98c
cmp dword [0x5245f0], 0
je 0x468c71
mov edx, 0x464bcc
mov eax, dword [0x5245f0]
call fcn.0045d98c
cmp dword [0x5245f4], 0
je 0x468c89
mov edx, 0x464ba4
mov eax, dword [0x5245f4]
call fcn.0045d98c
cmp dword [0x5245f8], 0
je 0x468ca1
mov edx, 0x464bcc
mov eax, dword [0x5245f8]
call fcn.0045d98c
cmp dword [0x5245fc], 0
je 0x468cb9
mov edx, 0x464ba4
mov eax, dword [0x5245fc]
call fcn.0045d98c
cmp dword [0x524600], 0
je 0x468cd1
mov edx, 0x464bcc
mov eax, dword [0x524600]
call fcn.0045d98c
cmp dword [0x524604], 0
je 0x468ce9
mov edx, 0x464ba4
mov eax, dword [0x524604]
call fcn.0045d98c
cmp dword [0x524608], 0
je 0x468d01
mov edx, 0x464b78
mov eax, dword [0x524608]
call fcn.0045d98c
cmp dword [0x52462c], 0
je 0x468d19
mov edx, 0x464c10
mov eax, dword [0x52462c]
call fcn.0045d98c
cmp dword [0x524630], 0
je 0x468d31
mov edx, 0x464c38
mov eax, dword [0x524630]
call fcn.0045d98c
cmp dword [0x524634], 0
je 0x468d5b
mov byte [0x5245d8], 1
mov eax, 0x18
call fcn.00403060
mov dword [0x524ff0], eax
mov eax, dword [0x524ff0]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x52460c], 0
je 0x468e33
cmp dword [0x524610], 0
je 0x468e33
lea edx, [ebp - 0x48]
mov eax, dword [0x52460c]
call fcn.004209b4
mov eax, dword [ebp - 0x28]
call fcn.004075a0
dec eax
jne 0x468d98
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x52460c], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x524610]
call fcn.004209b4
mov eax, dword [ebp - 0x28]
call fcn.004075a0
dec eax
jne 0x468dbb
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x524610], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x52460c]
call fcn.0041f6b4
jmp 0x468e21
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x468e00
cmp esi, dword [0x524610]
jne 0x468e00
cmp dword [ebp - 0x78], 4
jne 0x468e33
cmp byte [ebp - 0x85], 0
je 0x468e33
mov edx, 0x464e28
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045d9e4
jmp 0x468e33
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x468dcd
cmp dword [0x524628], 0
je 0x468ec9
mov esi, fcn.00403154
cmp word [esi], 0x25ff
jne 0x468e53
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x524628]
call fcn.0041f6b4
jmp 0x468eb7
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x468e94
cmp esi, edi
jne 0x468e94
cmp dword [ebp - 0x78], 4
jne 0x468ec9
cmp byte [ebp - 0x85], 0
je 0x468ec9
mov edx, 0x464ce8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045d9e4
jmp 0x468ec9
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x468e65
call fcn.004678d8
lea edx, [ebp - 0x8c]
call fcn.0041f6b4
mov byte [ebp - 0x49], 0
jmp 0x468f34
cmp byte [ebp - 0x85], 0
je 0x468f13
cmp dword [ebp - 0x78], 4
jne 0x468f13
cmp dword [ebp - 0x84], 0
je 0x468f13
cmp byte [ebp - 0x49], 0
je 0x468f0f
mov edx, 0x464d44
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045d9e4
jmp 0x468f46
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x468edf
call fcn.004678d8
lea edx, [ebp - 0x8c]
call fcn.0041f6b4
jmp 0x468fac
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x468f8b
cmp esi, dword [0x52463c]
jne 0x468f8b
cmp dword [ebp - 0x78], 4
jne 0x468fbe
cmp byte [ebp - 0x85], 0
je 0x468fbe
mov edx, 0x464f0c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045d9e4
jmp 0x468fbe
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x468f58
mov esi, dword [0x524638]
test esi, esi
je 0x469042
cmp dword [0x52463c], 0
je 0x469042
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041f6b4
jmp 0x469030
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x52463c]
jne 0x46900f
cmp dword [ebp - 0x78], 4
jne 0x469042
cmp byte [ebp - 0x85], 0
je 0x469042
mov edx, 0x464f14
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045d9e4
jmp 0x469042
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x468fe0
mov esi, dword [0x52463c]
test esi, esi
je 0x4690bd
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041f6b4
jmp 0x4690ab
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x52463c]
jne 0x46908a
cmp dword [ebp - 0x78], 4
jne 0x4690bd
cmp byte [ebp - 0x85], 0
je 0x4690bd
mov edx, 0x464f24
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045d9e4
jmp 0x4690bd
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x46905b
call fcn.00467914
lea edx, [ebp - 0x8c]
call fcn.0041f6b4
jmp 0x4690f0
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x469131
cmp word [ebp - 0x8a], 0x8b
jne 0x46911f
cmp byte [ebp - 0x88], 0x15
jne 0x46911f
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x529cf8]
cmp eax, edx
je 0x469131
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4690cf
cmp word [ebp - 0x8a], 0x8b
jne 0x46914c
mov edx, 0x524fe0
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045d9e4
call fcn.00467928
lea edx, [ebp - 0x8c]
call fcn.0041f6b4
jmp 0x46917f
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4691c0
cmp word [ebp - 0x8a], 0xff
jne 0x4691ae
cmp byte [ebp - 0x88], 0x15
jne 0x4691ae
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x529cf8]
cmp eax, edx
je 0x4691c0
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46915e
cmp word [ebp - 0x8a], 0xff
jne 0x4691db
mov edx, 0x524fe4
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045d9e4
mov eax, dword [0x52a214]
mov eax, dword [eax]
mov dword [0x524fe8], eax
call fcn.0046793c
lea edx, [ebp - 0x8c]
call fcn.0041f6b4
jmp 0x46921a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x469249
cmp word [ebp - 0x8a], 0xff
jne 0x469237
cmp byte [ebp - 0x88], 0x25
je 0x469249
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4691f9
cmp word [ebp - 0x8a], 0xff
jne 0x469264
mov edx, 0x524fec
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045d9e4
call fcn.00467900
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041f6b4
jmp 0x46929d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x4692af
cmp byte [ebp - 0x87], 0
je 0x46927a
mov eax, dword [ebp - 0x84]
mov dword [0x5246c0], eax
mov edx, 0x46560c
mov eax, esi
call fcn.0045d98c
lea edx, [ebp - 0x8c]
mov eax, fcn.004041e0
call fcn.0041f6b4
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x4692e4
mov esi, eax
jmp 0x4692e9
mov esi, fcn.004041e0
call fcn.004678c4
lea edx, [ebp - 0x8c]
call fcn.0041f6b4
jmp 0x469347
cmp esi, dword [ebp - 0x84]
jne 0x469324
cmp dword [ebp - 0x78], 4
jne 0x469359
cmp byte [ebp - 0x85], 0
je 0x469359
mov edx, 0x4658e8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045d9e4
jmp 0x469359
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041f6b4
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 0x4692fb
call fcn.004678ec
mov edx, 0x4658f8
call fcn.0045d98c
cmp dword [0x524614], 0
je 0x4693bb
cmp dword [0x52461c], 0
je 0x4693bb
mov edx, 0x463e8c
mov eax, dword [0x524614]
call fcn.0045d98c
mov edx, 0x40a2ec
mov eax, dword [0x52461c]
call fcn.0045d98c
cmp dword [0x524618], 0
je 0x4693b0
mov edx, 0x463ee8
mov eax, dword [0x524618]
call fcn.0045d98c
mov eax, dword [0x52a0f8]
mov dword [eax], 0x463e14
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.0045bd88
call fcn.0043cf0c
mov esi, fcn.00405484
cmp word [esi], 0x25ff
jne 0x4693e7
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x524ffc], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.004209b4
cmp byte [ebp - 0x48], 0
je 0x469408
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x525000], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x524664]
je 0x469420
cmp byte [0x524670], 0
je 0x46942a
mov eax, dword [0x524ea8]
call fcn.004664b8
mov eax, ebx
call fcn.0043755c
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x469459
mov eax, dword [0x524ea8]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x524eec], eax
call fcn.0043d5a0
call fcn.0045bf24
mov eax, 0x464828
test eax, eax
jmp 0x469497
lea eax, [ebp - 4]
call fcn.0043399c
cmp dword [ebp - 4], 0
je 0x469481
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x524544], eax
jmp 0x46948d
mov eax, dword [0x52a4a8]
mov eax, dword [eax]
mov dword [0x524544], eax
mov eax, 0x524ea8
call fcn.00408064
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4694eb
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.00405524
lea eax, [ebp - 0xd4]
call fcn.00408064
lea eax, [ebp - 0x48]
mov edx, dword [0x41b5ac]
call fcn.00406ca8
lea eax, [ebp - 8]
call fcn.00405500
lea eax, [ebp - 4]
mov edx, dword [0x40a154]
call fcn.00407888
ret