Function at 0x468a54
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 [0x41bc08]
call fcn.004070e8
xor eax, eax
push ebp
push 0x469c94
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x40a7b0]
call fcn.00407fc8
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x468ae9
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x468ae9
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.0040769c
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.0040769c
mov dword [0x54c670], eax
mov dword [0x54c674], edx
push 0x469ca4
mov eax, dword [0x54c66c]
push eax
call fcn.00409750
test eax, eax
setne byte [0x54c678]
cmp byte [0x54c678], 0
je 0x468b10
call fcn.00468814
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x468b33
push 0x469ce4
push 0x469cfc
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.00409750
mov dword [0x54c688], eax
mov eax, dword [0x556d74]
mov dword [eax], fcn.00467ee4
mov eax, dword [0x556ee0]
mov dword [eax], 0x43dfec
mov eax, dword [0x557460]
mov dword [eax], 0x43e604
mov eax, 0x468050
mov edx, dword [0x5571b4]
mov dword [edx], eax
push 0x469d0c
push 0x469d24
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.00409750
mov dword [0x54c694], eax
push 0x469d40
push 0x469d5c
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.00409750
mov dword [0x54c698], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x54c66c]
call fcn.00442c88
mov edx, dword [ebp - 0xd4]
mov eax, 0x54ceb0
call fcn.004087bc
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x468c13
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x468c13
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x468c13
mov eax, dword [0x54c66c]
call fcn.0046815c
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x54c66c]
je 0x468c13
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.0046815c
call fcn.00468724
push 0x55bd60
call sub.kernel32.dll_InitializeCriticalSection
push 0x55bd48
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x469c17
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.004352f8
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040d33c
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x469d7c
call fcn.00405dc8
mov eax, dword [ebp - 0xd8]
call fcn.00406040
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 0x468d49
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x54c690], eax
mov eax, dword [0x54c690]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.00409480
mov edx, dword [0x54c690]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.00409480
mov edx, dword [0x54c690]
mov dword [edx + 4], eax
mov eax, dword [0x54c690]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x54c690]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.00434044
cmp dword [ebp - 4], 0
je 0x468d3b
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x54c54c], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x469da0
xor edx, edx
call fcn.00435cc8
jmp 0x468d93
mov eax, dword [0x5574b0]
mov eax, dword [eax]
mov dword [0x54c54c], eax
jmp 0x468d93
test ebx, ebx
je 0x468d79
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x54c690], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x54c690]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x468d93
push 0
push 0x469db8
push 0x469dc4
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x54c690], 0
jne 0x468db6
push 0
push 0x469db8
push 0x469dec
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x54c54c], 0
jne 0x468e30
push 0xffffffffffffffff
mov eax, dword [0x54c690]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x468e14
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x54c690]
mov eax, dword [eax + 8]
test eax, eax
je 0x468df8
mov edx, dword [eax]
mov dword [0x54c54c], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x468de9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x468e1b
mov eax, dword [0x54c690]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x54c66c]
je 0x468e4c
cmp byte [0x54c678], 0
jne 0x468e4c
xor ebx, ebx
jmp 0x468e4e
mov bl, 1
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x469c0e
mov eax, 0x54c5f8
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c5fc
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c600
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c604
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c608
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c60c
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c610
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c614
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c618
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c61c
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c620
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c624
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c630
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c634
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c638
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c63c
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c640
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c644
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c648
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c64c
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c650
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c654
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c658
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c65c
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c660
mov edx, dword [0x54c66c]
call fcn.0046806c
mov eax, 0x54c668
mov edx, dword [0x54c66c]
call fcn.0046806c
cmp dword [0x54c640], 0
je 0x46902b
cmp dword [0x54c5f8], 0
je 0x46902b
cmp dword [0x54c600], 0
je 0x46902b
cmp dword [0x54c608], 0
jne 0x4693e7
test bl, bl
je 0x4693e7
mov esi, 0x4088b4
cmp word [esi], 0x25ff
jne 0x469068
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x556f0c]
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 [0x54c66c]
jne 0x469068
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x469e28
mov ecx, 0x78
mov edx, 0x469e70
mov eax, dword [ebp - 0x50]
call fcn.004683cc
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x4690a0
push 0x469e80
mov ecx, 0x78
mov edx, 0x469ea0
mov eax, esi
call fcn.004683cc
mov dword [ebp - 0x50], eax
push 0x469eb0
mov ecx, 0x78
mov edx, 0x469ef8
xor eax, eax
call fcn.004683cc
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [0x54c640], 0
jne 0x469350
cmp dword [ebp - 0x50], 0
je 0x469350
push 0x469f00
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c610], eax
cmp dword [0x54c610], 0
je 0x469347
mov eax, dword [0x54c610]
cmp byte [eax], 0xe9
je 0x469347
push 0x469f60
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c614], eax
push 0x469fbc
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c618], eax
push 0x46a000
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c61c], eax
push 0x46a08c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c620], eax
push 0x46a0dc
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c624], eax
push 0x46a11c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c628], eax
push 0x46a158
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c62c], eax
push 0x46a194
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
mov dword [0x54c630], eax
push 0x46a1d4
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409750
lea edx, [ebp - 0x8c]
call fcn.0041fd10
mov byte [ebp - 0x49], 1
jmp 0x46932d
cmp dword [ebp - 0x84], 0
je 0x469308
cmp byte [ebp - 0x85], 0
je 0x469308
cmp dword [ebp - 0x78], 4
jne 0x469308
cmp byte [ebp - 0x49], 0
je 0x46927d
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.0041fd10
jmp 0x469260
cmp word [ebp - 0xae], 0xc7
jne 0x469238
cmp byte [ebp - 0xac], 0x40
jne 0x469238
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x469238
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x54c648], eax
jmp 0x469308
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.0041fd10
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 0x469308
cmp word [ebp - 0xae], 0xc3
jne 0x469201
jmp 0x469308
mov eax, dword [ebp - 0x84]
mov dword [0x54c640], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x54c640]
call fcn.0041fd10
jmp 0x4692f2
cmp dword [ebp - 0x84], 0
je 0x4692cd
cmp word [ebp - 0x8a], 0xe8
jne 0x4692cd
cmp byte [ebp - 0x85], 0
je 0x4692cd
cmp dword [ebp - 0x78], 4
jne 0x4692cd
mov eax, dword [ebp - 0x84]
mov dword [0x54c644], eax
jmp 0x469350
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x469350
cmp word [ebp - 0x8a], 0xc3
jne 0x46929a
jmp 0x469350
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x469350
cmp word [ebp - 0x8a], 0xc3
jne 0x4691bc
jmp 0x469350
xor ebx, ebx
xor eax, eax
mov dword [0x54c610], eax
test bl, bl
je 0x4693e7
cmp dword [0x54c5f8], 0
jne 0x469385
test esi, esi
je 0x469385
push 0x46a25c
push esi
call fcn.00409750
mov dword [0x54c5f8], eax
push 0x46a2d0
push esi
call fcn.00409750
mov dword [0x54c5fc], eax
cmp dword [0x54c600], 0
jne 0x4693b2
test edi, edi
je 0x4693b2
push 0x46a348
push edi
call fcn.00409750
mov dword [0x54c600], eax
push 0x46a3bc
push edi
call fcn.00409750
mov dword [0x54c604], eax
cmp dword [0x54c608], 0
jne 0x4693e7
cmp dword [ebp - 0x54], 0
je 0x4693e7
push 0x46a434
mov eax, dword [ebp - 0x54]
push eax
call fcn.00409750
mov dword [0x54c608], eax
push 0x46a4b0
mov eax, dword [ebp - 0x54]
push eax
call fcn.00409750
mov dword [0x54c60c], eax
mov eax, dword [0x556f5c]
mov dword [0x54cfe4], eax
cmp dword [0x54c648], 0
je 0x469409
mov edx, 0x465d58
mov eax, dword [0x54c648]
call fcn.0045e13c
cmp dword [0x54c5f8], 0
je 0x469421
mov edx, 0x46537c
mov eax, dword [0x54c5f8]
call fcn.0045e13c
cmp dword [0x54c5fc], 0
je 0x469439
mov edx, 0x465354
mov eax, dword [0x54c5fc]
call fcn.0045e13c
cmp dword [0x54c600], 0
je 0x469451
mov edx, 0x46537c
mov eax, dword [0x54c600]
call fcn.0045e13c
cmp dword [0x54c604], 0
je 0x469469
mov edx, 0x465354
mov eax, dword [0x54c604]
call fcn.0045e13c
cmp dword [0x54c608], 0
je 0x469481
mov edx, 0x46537c
mov eax, dword [0x54c608]
call fcn.0045e13c
cmp dword [0x54c60c], 0
je 0x469499
mov edx, 0x465354
mov eax, dword [0x54c60c]
call fcn.0045e13c
cmp dword [0x54c610], 0
je 0x4694b1
mov edx, 0x465328
mov eax, dword [0x54c610]
call fcn.0045e13c
cmp dword [0x54c634], 0
je 0x4694c9
mov edx, 0x4653c0
mov eax, dword [0x54c634]
call fcn.0045e13c
cmp dword [0x54c638], 0
je 0x4694e1
mov edx, 0x4653e8
mov eax, dword [0x54c638]
call fcn.0045e13c
cmp dword [0x54c63c], 0
je 0x46950b
mov byte [0x54c5e0], 1
mov eax, 0x18
call fcn.00403054
mov dword [0x54cff8], eax
mov eax, dword [0x54cff8]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x54c614], 0
je 0x4695e3
cmp dword [0x54c618], 0
je 0x4695e3
lea edx, [ebp - 0x48]
mov eax, dword [0x54c614]
call fcn.00421010
mov eax, dword [ebp - 0x28]
call fcn.00407ce0
dec eax
jne 0x469548
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x54c614], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x54c618]
call fcn.00421010
mov eax, dword [ebp - 0x28]
call fcn.00407ce0
dec eax
jne 0x46956b
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x54c618], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x54c614]
call fcn.0041fd10
jmp 0x4695d1
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x4695b0
cmp esi, dword [0x54c618]
jne 0x4695b0
cmp dword [ebp - 0x78], 4
jne 0x4695e3
cmp byte [ebp - 0x85], 0
je 0x4695e3
mov edx, 0x4655d8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045e194
jmp 0x4695e3
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x46957d
cmp dword [0x54c630], 0
je 0x469679
mov esi, fcn.00403148
cmp word [esi], 0x25ff
jne 0x469603
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x54c630]
call fcn.0041fd10
jmp 0x469667
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x469644
cmp esi, edi
jne 0x469644
cmp dword [ebp - 0x78], 4
jne 0x469679
cmp byte [ebp - 0x85], 0
je 0x469679
mov edx, 0x465498
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045e194
jmp 0x469679
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x469615
call fcn.00468088
lea edx, [ebp - 0x8c]
call fcn.0041fd10
mov byte [ebp - 0x49], 0
jmp 0x4696e4
cmp byte [ebp - 0x85], 0
je 0x4696c3
cmp dword [ebp - 0x78], 4
jne 0x4696c3
cmp dword [ebp - 0x84], 0
je 0x4696c3
cmp byte [ebp - 0x49], 0
je 0x4696bf
mov edx, 0x4654f4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045e194
jmp 0x4696f6
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x46968f
call fcn.00468088
lea edx, [ebp - 0x8c]
call fcn.0041fd10
jmp 0x46975c
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46973b
cmp esi, dword [0x54c644]
jne 0x46973b
cmp dword [ebp - 0x78], 4
jne 0x46976e
cmp byte [ebp - 0x85], 0
je 0x46976e
mov edx, 0x4656bc
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045e194
jmp 0x46976e
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x469708
mov esi, dword [0x54c640]
test esi, esi
je 0x4697f2
cmp dword [0x54c644], 0
je 0x4697f2
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041fd10
jmp 0x4697e0
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x54c644]
jne 0x4697bf
cmp dword [ebp - 0x78], 4
jne 0x4697f2
cmp byte [ebp - 0x85], 0
je 0x4697f2
mov edx, 0x4656c4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045e194
jmp 0x4697f2
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x469790
mov esi, dword [0x54c644]
test esi, esi
je 0x46986d
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041fd10
jmp 0x46985b
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x54c644]
jne 0x46983a
cmp dword [ebp - 0x78], 4
jne 0x46986d
cmp byte [ebp - 0x85], 0
je 0x46986d
mov edx, 0x4656d4
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045e194
jmp 0x46986d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x46980b
call fcn.004680c4
lea edx, [ebp - 0x8c]
call fcn.0041fd10
jmp 0x4698a0
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4698e1
cmp word [ebp - 0x8a], 0x8b
jne 0x4698cf
cmp byte [ebp - 0x88], 0x15
jne 0x4698cf
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x556f5c]
cmp eax, edx
je 0x4698e1
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46987f
cmp word [ebp - 0x8a], 0x8b
jne 0x4698fc
mov edx, 0x54cfe8
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045e194
call fcn.004680d8
lea edx, [ebp - 0x8c]
call fcn.0041fd10
jmp 0x46992f
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x469970
cmp word [ebp - 0x8a], 0xff
jne 0x46995e
cmp byte [ebp - 0x88], 0x15
jne 0x46995e
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x556f5c]
cmp eax, edx
je 0x469970
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46990e
cmp word [ebp - 0x8a], 0xff
jne 0x46998b
mov edx, 0x54cfec
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045e194
mov eax, dword [0x5572f4]
mov eax, dword [eax]
mov dword [0x54cff0], eax
call fcn.004680ec
lea edx, [ebp - 0x8c]
call fcn.0041fd10
jmp 0x4699ca
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x4699f9
cmp word [ebp - 0x8a], 0xff
jne 0x4699e7
cmp byte [ebp - 0x88], 0x25
je 0x4699f9
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x4699a9
cmp word [ebp - 0x8a], 0xff
jne 0x469a14
mov edx, 0x54cff4
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045e194
call fcn.004680b0
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.0041fd10
jmp 0x469a4d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x469a5f
cmp byte [ebp - 0x87], 0
je 0x469a2a
mov eax, dword [ebp - 0x84]
mov dword [0x54c6c8], eax
mov edx, 0x465dbc
mov eax, esi
call fcn.0045e13c
lea edx, [ebp - 0x8c]
mov eax, fcn.004043a0
call fcn.0041fd10
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x469a94
mov esi, eax
jmp 0x469a99
mov esi, fcn.004043a0
call fcn.00468074
lea edx, [ebp - 0x8c]
call fcn.0041fd10
jmp 0x469af7
cmp esi, dword [ebp - 0x84]
jne 0x469ad4
cmp dword [ebp - 0x78], 4
jne 0x469b09
cmp byte [ebp - 0x85], 0
je 0x469b09
mov edx, 0x466098
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045e194
jmp 0x469b09
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.0041fd10
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 0x469aab
call fcn.0046809c
mov edx, 0x4660a8
call fcn.0045e13c
cmp dword [0x54c61c], 0
je 0x469b6b
cmp dword [0x54c624], 0
je 0x469b6b
mov edx, 0x46463c
mov eax, dword [0x54c61c]
call fcn.0045e13c
mov edx, 0x40a948
mov eax, dword [0x54c624]
call fcn.0045e13c
cmp dword [0x54c620], 0
je 0x469b60
mov edx, 0x464698
mov eax, dword [0x54c620]
call fcn.0045e13c
mov eax, dword [0x557220]
mov dword [eax], 0x4645c4
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.0045c430
call fcn.0043d5b4
mov esi, fcn.00405908
cmp word [esi], 0x25ff
jne 0x469b97
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x54d004], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00421010
cmp byte [ebp - 0x48], 0
je 0x469bb8
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x54d008], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x54c66c]
je 0x469bd0
cmp byte [0x54c678], 0
je 0x469bda
mov eax, dword [0x54ceb0]
call fcn.00466c68
mov eax, ebx
call fcn.00437c04
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x469c09
mov eax, dword [0x54ceb0]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x54cef4], eax
call fcn.0043dc48
call fcn.0045c5cc
mov eax, 0x464fd8
test eax, eax
jmp 0x469c47
lea eax, [ebp - 4]
call fcn.00434044
cmp dword [ebp - 4], 0
je 0x469c31
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x54c54c], eax
jmp 0x469c3d
mov eax, dword [0x5574b0]
mov eax, dword [eax]
mov dword [0x54c54c], eax
mov eax, 0x54ceb0
call fcn.004087a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x469c9b
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.004059a8
lea eax, [ebp - 0xd4]
call fcn.004087a4
lea eax, [ebp - 0x48]
mov edx, dword [0x41bc08]
call fcn.004071c0
lea eax, [ebp - 8]
call fcn.00405984
lea eax, [ebp - 4]
mov edx, dword [0x40a7b0]
call fcn.00407fc8
ret