Function at 0x469728
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 [0x41c45c]
call fcn.00407704
xor eax, eax
push ebp
push 0x46a968
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, dword [0x40afa8]
call fcn.00408560
lea eax, [ebp - 0x60]
push eax
call sub.kernel32.dll_QueryPerformanceCounter_1
test eax, eax
je 0x4697bd
lea eax, [ebp - 0x68]
push eax
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x4697bd
push 0
push 0x3e8
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
call fcn.00407dd0
push edx
push eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
call fcn.00407dd0
mov dword [0x619674], eax
mov dword [0x619678], edx
push 0x46a978
mov eax, dword [0x619670]
push eax
call fcn.00409db4
test eax, eax
setne byte [0x61967c]
cmp byte [0x61967c], 0
je 0x4697e4
call fcn.004694e8
call sub.kernel32.dll_GetVersion_1
cmp al, 6
jb 0x469807
push 0x46a9b8
push 0x46a9d0
call sub.kernel32.dll_LoadLibraryA
push eax
call fcn.00409db4
mov dword [0x61968c], eax
mov eax, dword [0x62f0e4]
mov dword [eax], fcn.00468bb8
mov eax, dword [0x62f324]
mov dword [eax], 0x43eb90
mov eax, dword [0x62fbcc]
mov dword [eax], 0x43f1a8
mov eax, 0x468d24
mov edx, dword [0x62f790]
mov dword [edx], eax
push 0x46a9e0
push 0x46a9f8
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.00409db4
mov dword [0x619698], eax
push 0x46aa14
push 0x46aa30
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.00409db4
mov dword [0x61969c], eax
lea edx, [ebp - 0xd4]
mov eax, dword [0x619670]
call fcn.0044382c
mov edx, dword [ebp - 0xd4]
mov eax, 0x619eb4
call fcn.00408d54
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x4698e7
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x4698e7
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0x378]
test al, al
je 0x4698e7
mov eax, dword [0x619670]
call fcn.00468e30
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp eax, dword [0x619670]
je 0x4698e7
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0xc]
call fcn.00468e30
call fcn.004693f8
push 0x633d9c
call sub.kernel32.dll_InitializeCriticalSection
push 0x633d84
call sub.kernel32.dll_InitializeCriticalSection
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0x368]
test al, al
je 0x46a8eb
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xbc]
call fcn.00435e9c
lea eax, [ebp - 0xdc]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040db34
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0xd8]
mov edx, 0x46aa50
call fcn.00405ed8
mov eax, dword [ebp - 0xd8]
call fcn.004061d8
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 0x469a1d
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x619694], eax
mov eax, dword [0x619694]
mov dword [eax + 0xc], 1
push 0
push 0
push 0
call fcn.00409aec
mov edx, dword [0x619694]
mov dword [edx], eax
push 0
push 0
push 0
call fcn.00409aec
mov edx, dword [0x619694]
mov dword [edx + 4], eax
mov eax, dword [0x619694]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [0x619694]
mov dword [eax + 0x10], ebx
lea eax, [ebp - 4]
call fcn.00434be8
cmp dword [ebp - 4], 0
je 0x469a0f
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x619550], eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, 0x46aa74
xor edx, edx
call fcn.0043686c
jmp 0x469a67
mov eax, dword [0x62fc4c]
mov eax, dword [eax]
mov dword [0x619550], eax
jmp 0x469a67
test ebx, ebx
je 0x469a4d
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.kernel32.dll_MapViewOfFile
mov dword [0x619694], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x619694]
add eax, 0xc
push eax
call sub.kernel32.dll_InterlockedIncrement
jmp 0x469a67
push 0
push 0x46aa8c
push 0x46aa98
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x619694], 0
jne 0x469a8a
push 0
push 0x46aa8c
push 0x46aac0
push 0
call sub.user32.dll_MessageBoxA_1
push 0
call sub.kernel32.dll_ExitProcess_1
cmp dword [0x619550], 0
jne 0x469b04
push 0xffffffffffffffff
mov eax, dword [0x619694]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor edx, edx
push ebp
push 0x469ae8
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x619694]
mov eax, dword [eax + 8]
test eax, eax
je 0x469acc
mov edx, dword [eax]
mov dword [0x619550], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x469abd
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x469aef
mov eax, dword [0x619694]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReleaseMutex
ret
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x619670]
je 0x469b20
cmp byte [0x61967c], 0
jne 0x469b20
xor ebx, ebx
jmp 0x469b22
mov bl, 1
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0x36c]
test al, al
je 0x46a8e2
mov eax, 0x6195fc
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619600
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619604
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619608
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x61960c
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619610
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619614
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619618
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x61961c
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619620
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619624
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619628
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619634
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619638
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x61963c
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619640
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619644
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619648
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x61964c
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619650
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619654
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619658
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x61965c
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619660
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x619664
mov edx, dword [0x619670]
call fcn.00468d40
mov eax, 0x61966c
mov edx, dword [0x619670]
call fcn.00468d40
cmp dword [0x619644], 0
je 0x469cff
cmp dword [0x6195fc], 0
je 0x469cff
cmp dword [0x619604], 0
je 0x469cff
cmp dword [0x61960c], 0
jne 0x46a0bb
test bl, bl
je 0x46a0bb
mov esi, fcn.00408e78
cmp word [esi], 0x25ff
jne 0x469d3c
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov edi, dword [0x62f36c]
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 [0x619670]
jne 0x469d3c
xor eax, eax
mov dword [ebp - 0x50], eax
push 0x46aafc
mov ecx, 0x78
mov edx, 0x46ab44
mov eax, dword [ebp - 0x50]
call fcn.004690a0
mov esi, eax
cmp dword [ebp - 0x50], 0
jne 0x469d74
push 0x46ab54
mov ecx, 0x78
mov edx, 0x46ab74
mov eax, esi
call fcn.004690a0
mov dword [ebp - 0x50], eax
push 0x46ab84
mov ecx, 0x78
mov edx, 0x46abcc
xor eax, eax
call fcn.004690a0
mov edi, eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [0x619644], 0
jne 0x46a024
cmp dword [ebp - 0x50], 0
je 0x46a024
push 0x46abd4
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x619614], eax
cmp dword [0x619614], 0
je 0x46a01b
mov eax, dword [0x619614]
cmp byte [eax], 0xe9
je 0x46a01b
push 0x46ac34
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x619618], eax
push 0x46ac90
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x61961c], eax
push 0x46acd4
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x619620], eax
push 0x46ad60
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x619624], eax
push 0x46adb0
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x619628], eax
push 0x46adf0
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x61962c], eax
push 0x46ae2c
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x619630], eax
push 0x46ae68
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
mov dword [0x619634], eax
push 0x46aea8
mov eax, dword [ebp - 0x50]
push eax
call fcn.00409db4
lea edx, [ebp - 0x8c]
call fcn.00420564
mov byte [ebp - 0x49], 1
jmp 0x46a001
cmp dword [ebp - 0x84], 0
je 0x469fdc
cmp byte [ebp - 0x85], 0
je 0x469fdc
cmp dword [ebp - 0x78], 4
jne 0x469fdc
cmp byte [ebp - 0x49], 0
je 0x469f51
mov byte [ebp - 0x49], 0
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x84]
call fcn.00420564
jmp 0x469f34
cmp word [ebp - 0xae], 0xc7
jne 0x469f0c
cmp byte [ebp - 0xac], 0x40
jne 0x469f0c
mov eax, dword [ebp - 0x90]
sub eax, 5
cmp byte [eax], 4
jne 0x469f0c
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [0x61964c], eax
jmp 0x469fdc
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x90]
call fcn.00420564
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 0x469fdc
cmp word [ebp - 0xae], 0xc3
jne 0x469ed5
jmp 0x469fdc
mov eax, dword [ebp - 0x84]
mov dword [0x619644], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x619644]
call fcn.00420564
jmp 0x469fc6
cmp dword [ebp - 0x84], 0
je 0x469fa1
cmp word [ebp - 0x8a], 0xe8
jne 0x469fa1
cmp byte [ebp - 0x85], 0
je 0x469fa1
cmp dword [ebp - 0x78], 4
jne 0x469fa1
mov eax, dword [ebp - 0x84]
mov dword [0x619648], eax
jmp 0x46a024
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a024
cmp word [ebp - 0x8a], 0xc3
jne 0x469f6e
jmp 0x46a024
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a024
cmp word [ebp - 0x8a], 0xc3
jne 0x469e90
jmp 0x46a024
xor ebx, ebx
xor eax, eax
mov dword [0x619614], eax
test bl, bl
je 0x46a0bb
cmp dword [0x6195fc], 0
jne 0x46a059
test esi, esi
je 0x46a059
push 0x46af30
push esi
call fcn.00409db4
mov dword [0x6195fc], eax
push 0x46afa4
push esi
call fcn.00409db4
mov dword [0x619600], eax
cmp dword [0x619604], 0
jne 0x46a086
test edi, edi
je 0x46a086
push 0x46b01c
push edi
call fcn.00409db4
mov dword [0x619604], eax
push 0x46b090
push edi
call fcn.00409db4
mov dword [0x619608], eax
cmp dword [0x61960c], 0
jne 0x46a0bb
cmp dword [ebp - 0x54], 0
je 0x46a0bb
push 0x46b108
mov eax, dword [ebp - 0x54]
push eax
call fcn.00409db4
mov dword [0x61960c], eax
push 0x46b184
mov eax, dword [ebp - 0x54]
push eax
call fcn.00409db4
mov dword [0x619610], eax
mov eax, dword [0x62f3dc]
mov dword [0x619fe8], eax
cmp dword [0x61964c], 0
je 0x46a0dd
mov edx, 0x466a2c
mov eax, dword [0x61964c]
call fcn.0045ee10
cmp dword [0x6195fc], 0
je 0x46a0f5
mov edx, 0x466050
mov eax, dword [0x6195fc]
call fcn.0045ee10
cmp dword [0x619600], 0
je 0x46a10d
mov edx, 0x466028
mov eax, dword [0x619600]
call fcn.0045ee10
cmp dword [0x619604], 0
je 0x46a125
mov edx, 0x466050
mov eax, dword [0x619604]
call fcn.0045ee10
cmp dword [0x619608], 0
je 0x46a13d
mov edx, 0x466028
mov eax, dword [0x619608]
call fcn.0045ee10
cmp dword [0x61960c], 0
je 0x46a155
mov edx, 0x466050
mov eax, dword [0x61960c]
call fcn.0045ee10
cmp dword [0x619610], 0
je 0x46a16d
mov edx, 0x466028
mov eax, dword [0x619610]
call fcn.0045ee10
cmp dword [0x619614], 0
je 0x46a185
mov edx, 0x465ffc
mov eax, dword [0x619614]
call fcn.0045ee10
cmp dword [0x619638], 0
je 0x46a19d
mov edx, 0x466094
mov eax, dword [0x619638]
call fcn.0045ee10
cmp dword [0x61963c], 0
je 0x46a1b5
mov edx, 0x4660bc
mov eax, dword [0x61963c]
call fcn.0045ee10
cmp dword [0x619640], 0
je 0x46a1df
mov byte [0x6195e4], 1
mov eax, 0x18
call fcn.004030ac
mov dword [0x619ffc], eax
mov eax, dword [0x619ffc]
push eax
call sub.kernel32.dll_InitializeCriticalSection
cmp dword [0x619618], 0
je 0x46a2b7
cmp dword [0x61961c], 0
je 0x46a2b7
lea edx, [ebp - 0x48]
mov eax, dword [0x619618]
call fcn.00421864
mov eax, dword [ebp - 0x28]
call fcn.00408278
dec eax
jne 0x46a21c
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x619618], eax
lea edx, [ebp - 0x48]
mov eax, dword [0x61961c]
call fcn.00421864
mov eax, dword [ebp - 0x28]
call fcn.00408278
dec eax
jne 0x46a23f
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
mov dword [0x61961c], eax
lea edx, [ebp - 0x8c]
mov eax, dword [0x619618]
call fcn.00420564
jmp 0x46a2a5
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46a284
cmp esi, dword [0x61961c]
jne 0x46a284
cmp dword [ebp - 0x78], 4
jne 0x46a2b7
cmp byte [ebp - 0x85], 0
je 0x46a2b7
mov edx, 0x4662ac
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045ee68
jmp 0x46a2b7
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a251
cmp dword [0x619634], 0
je 0x46a34d
mov esi, fcn.004031a0
cmp word [esi], 0x25ff
jne 0x46a2d7
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
lea edx, [ebp - 0x8c]
mov eax, dword [0x619634]
call fcn.00420564
jmp 0x46a33b
mov edi, dword [ebp - 0x84]
test edi, edi
je 0x46a318
cmp esi, edi
jne 0x46a318
cmp dword [ebp - 0x78], 4
jne 0x46a34d
cmp byte [ebp - 0x85], 0
je 0x46a34d
mov edx, 0x46616c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045ee68
jmp 0x46a34d
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a2e9
call fcn.00468d5c
lea edx, [ebp - 0x8c]
call fcn.00420564
mov byte [ebp - 0x49], 0
jmp 0x46a3b8
cmp byte [ebp - 0x85], 0
je 0x46a397
cmp dword [ebp - 0x78], 4
jne 0x46a397
cmp dword [ebp - 0x84], 0
je 0x46a397
cmp byte [ebp - 0x49], 0
je 0x46a393
mov edx, 0x4661c8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045ee68
jmp 0x46a3ca
mov byte [ebp - 0x49], 1
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a363
call fcn.00468d5c
lea edx, [ebp - 0x8c]
call fcn.00420564
jmp 0x46a430
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x46a40f
cmp esi, dword [0x619648]
jne 0x46a40f
cmp dword [ebp - 0x78], 4
jne 0x46a442
cmp byte [ebp - 0x85], 0
je 0x46a442
mov edx, 0x466390
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045ee68
jmp 0x46a442
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a3dc
mov esi, dword [0x619644]
test esi, esi
je 0x46a4c6
cmp dword [0x619648], 0
je 0x46a4c6
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420564
jmp 0x46a4b4
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x619648]
jne 0x46a493
cmp dword [ebp - 0x78], 4
jne 0x46a4c6
cmp byte [ebp - 0x85], 0
je 0x46a4c6
mov edx, 0x466398
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045ee68
jmp 0x46a4c6
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a464
mov esi, dword [0x619648]
test esi, esi
je 0x46a541
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420564
jmp 0x46a52f
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x619648]
jne 0x46a50e
cmp dword [ebp - 0x78], 4
jne 0x46a541
cmp byte [ebp - 0x85], 0
je 0x46a541
mov edx, 0x4663a8
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045ee68
jmp 0x46a541
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a4df
call fcn.00468d98
lea edx, [ebp - 0x8c]
call fcn.00420564
jmp 0x46a574
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46a5b5
cmp word [ebp - 0x8a], 0x8b
jne 0x46a5a3
cmp byte [ebp - 0x88], 0x15
jne 0x46a5a3
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x62f3dc]
cmp eax, edx
je 0x46a5b5
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a553
cmp word [ebp - 0x8a], 0x8b
jne 0x46a5d0
mov edx, 0x619fec
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045ee68
call fcn.00468dac
lea edx, [ebp - 0x8c]
call fcn.00420564
jmp 0x46a603
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46a644
cmp word [ebp - 0x8a], 0xff
jne 0x46a632
cmp byte [ebp - 0x88], 0x15
jne 0x46a632
mov eax, dword [ebp - 0x70]
add eax, 2
mov eax, dword [eax]
mov edx, dword [0x62f3dc]
cmp eax, edx
je 0x46a644
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a5e2
cmp word [ebp - 0x8a], 0xff
jne 0x46a65f
mov edx, 0x619ff0
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045ee68
mov eax, dword [0x62f99c]
mov eax, dword [eax]
mov dword [0x619ff4], eax
call fcn.00468dc0
lea edx, [ebp - 0x8c]
call fcn.00420564
jmp 0x46a69e
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
lea esi, [ebp - 0x100]
lea edi, [ebp - 0x8c]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x8c], 0
je 0x46a6cd
cmp word [ebp - 0x8a], 0xff
jne 0x46a6bb
cmp byte [ebp - 0x88], 0x25
je 0x46a6cd
movzx eax, word [ebp - 0x8a]
add eax, 0xffffff3e
sub ax, 2
jae 0x46a67d
cmp word [ebp - 0x8a], 0xff
jne 0x46a6e8
mov edx, 0x619ff8
mov eax, dword [ebp - 0x70]
add eax, 2
call fcn.0045ee68
call fcn.00468d84
mov esi, eax
lea edx, [ebp - 0x8c]
mov eax, esi
call fcn.00420564
jmp 0x46a721
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a733
cmp byte [ebp - 0x87], 0
je 0x46a6fe
mov eax, dword [ebp - 0x84]
mov dword [0x6196cc], eax
mov edx, 0x466a90
mov eax, esi
call fcn.0045ee10
lea edx, [ebp - 0x8c]
mov eax, fcn.00404358
call fcn.00420564
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x46a768
mov esi, eax
jmp 0x46a76d
mov esi, fcn.00404358
call fcn.00468d48
lea edx, [ebp - 0x8c]
call fcn.00420564
jmp 0x46a7cb
cmp esi, dword [ebp - 0x84]
jne 0x46a7a8
cmp dword [ebp - 0x78], 4
jne 0x46a7dd
cmp byte [ebp - 0x85], 0
je 0x46a7dd
mov edx, 0x466d6c
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
call fcn.0045ee68
jmp 0x46a7dd
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x6c]
call fcn.00420564
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 0x46a77f
call fcn.00468d70
mov edx, 0x466d7c
call fcn.0045ee10
cmp dword [0x619620], 0
je 0x46a83f
cmp dword [0x619628], 0
je 0x46a83f
mov edx, 0x465310
mov eax, dword [0x619620]
call fcn.0045ee10
mov edx, 0x40b140
mov eax, dword [0x619628]
call fcn.0045ee10
cmp dword [0x619624], 0
je 0x46a834
mov edx, 0x46536c
mov eax, dword [0x619624]
call fcn.0045ee10
mov eax, dword [0x62f838]
mov dword [eax], 0x465298
push 0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_FlushInstructionCache
call fcn.0045cfd4
call fcn.0043e158
mov esi, fcn.0040599c
cmp word [esi], 0x25ff
jne 0x46a86b
add esi, 2
mov eax, dword [esi]
mov esi, dword [eax]
mov dword [0x61a008], esi
lea edx, [ebp - 0x48]
mov eax, esi
call fcn.00421864
cmp byte [ebp - 0x48], 0
je 0x46a88c
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [0x61a00c], eax
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x619670]
je 0x46a8a4
cmp byte [0x61967c], 0
je 0x46a8ae
mov eax, dword [0x619eb4]
call fcn.0046793c
mov eax, ebx
call fcn.004387a8
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0x37c]
test al, al
je 0x46a8dd
mov eax, dword [0x619eb4]
mov edx, dword [eax]
call dword [edx + 0x380]
mov dword [0x619ef8], eax
call fcn.0043e7ec
call fcn.0045d170
mov eax, 0x465cac
test eax, eax
jmp 0x46a91b
lea eax, [ebp - 4]
call fcn.00434be8
cmp dword [ebp - 4], 0
je 0x46a905
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [0x619550], eax
jmp 0x46a911
mov eax, dword [0x62fc4c]
mov eax, dword [eax]
mov dword [0x619550], eax
mov eax, 0x619eb4
call fcn.00408d3c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46a96f
lea eax, [ebp - 0xdc]
mov edx, 2
call fcn.00405a3c
lea eax, [ebp - 0xd4]
call fcn.00408d3c
lea eax, [ebp - 0x48]
mov edx, dword [0x41c45c]
call fcn.004077dc
lea eax, [ebp - 8]
call fcn.00405a18
lea eax, [ebp - 4]
mov edx, dword [0x40afa8]
call fcn.00408560
ret