Function at 0x427348
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x23
push 0
push 0
dec ecx
jne 0x427351
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
test dl, dl
je 0x42736a
add esp, 0xfffffff0
call fcn.0041aa08
mov ebx, ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
call fcn.0041b938
lea eax, [ebp - 0xa0]
mov edx, dword [0x41ed64]
call fcn.0041bafc
xor eax, eax
push ebp
push 0x42827b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x20], edx
call fcn.004252cc
push ebp
push 0x42822b
push dword fs:[0]
mov dword fs:[0], esp
call fcn.00422588
call sub.KERNEL32.dll_GetVersion
test eax, 0x80000000
je 0x4273e2
mov edx, 0x43cb8c
mov eax, 0x43cb88
call fcn.00422310
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, dword [ebp - 4]
mov dword [eax + 0x30], ebx
test byte [ebp + 8], 0x20
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x34], al
test byte [ebp + 8], 0x40
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x35], al
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x28], edx
lea edx, [ebp - 0xe0]
mov eax, 0x426a74
call fcn.004213f8
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
add eax, 0xf5a
call fcn.00424bf4
mov esi, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x20], esi
mov byte [esi], 0xff
mov byte [esi + 1], 0x25
lea eax, [esi + 6]
mov dword [esi + 2], eax
mov edx, dword [ebp - 4]
mov eax, edi
mov dword [edx + 8], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x10], edx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov dword [edx + 0x14], eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
xor ecx, ecx
mov eax, 0x4282b0
call fcn.00424770
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, 0x4282b0
mov cl, 1
call fcn.00424770
call sub.KERNEL32.dll_GetVersion
test eax, 0x80000000
je 0x4274c0
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0x80000000
jb 0x4274c8
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
call fcn.0041b580
lea eax, [ebp - 0x20]
call fcn.0041b4e8
jmp 0x4274c8
lea eax, [ebp - 0x20]
call fcn.0041b4e8
lea edx, [ebp - 0xe8]
mov eax, 0x4282bc
call fcn.0041dcd4
push dword [ebp - 0xe8]
push 0x4282cc
push dword [ebp - 0x1c]
lea eax, [ebp - 0xe4]
mov edx, 3
call fcn.0041b808
mov eax, dword [ebp - 0xe4]
call fcn.0041b948
push eax
call fcn.00424194
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x20], 0
je 0x427554
lea edx, [ebp - 0xf0]
mov eax, 0x4282bc
call fcn.0041dcd4
push dword [ebp - 0xf0]
push 0x4282cc
push dword [ebp - 0x20]
lea eax, [ebp - 0xec]
mov edx, 3
call fcn.0041b808
mov eax, dword [ebp - 0xec]
call fcn.0041b948
push eax
call fcn.00424194
mov dword [ebp - 0x10], eax
jmp 0x427559
xor eax, eax
mov dword [ebp - 0x10], eax
push ebp
push 0x428208
push dword fs:[0]
mov dword fs:[0], esp
cmp dword [ebp - 0xc], 0
je 0x42757e
push 0xffffffffffffffff
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.dll_WaitForSingleObject
cmp dword [ebp - 0x10], 0
je 0x42758f
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10]
push eax
call sub.KERNEL32.dll_WaitForSingleObject
push ebp
push 0x4281d5
push dword fs:[0]
mov dword fs:[0], esp
push 0xffffffffffffffff
lea edx, [ebp - 0xf8]
mov eax, 0x4282d8
call fcn.0041dcd4
push dword [ebp - 0xf8]
push 0x4282cc
push dword [ebp - 0x1c]
lea eax, [ebp - 0xf4]
mov edx, 3
call fcn.0041b808
mov eax, dword [ebp - 0xf4]
call fcn.0041b948
push eax
call fcn.0042448c
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
call fcn.004271d8
xor al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 5], al
mov eax, dword [ebp - 4]
cmp byte [eax + 5], 0
je 0x42766e
cmp dword [ebp - 0x20], 0
je 0x42766e
push 0xffffffffffffffff
lea edx, [ebp - 0x100]
mov eax, 0x4282d8
call fcn.0041dcd4
push dword [ebp - 0x100]
push 0x4282cc
push dword [ebp - 0x20]
lea eax, [ebp - 0xfc]
mov edx, 3
call fcn.0041b808
mov eax, dword [ebp - 0xfc]
call fcn.0041b948
push eax
call fcn.0042448c
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
call fcn.004271d8
xor al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 5], al
mov eax, dword [ebp - 4]
cmp byte [eax + 5], 0
jne 0x42766e
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
call fcn.0041b580
push ebp
push 0x4281a2
push dword fs:[0]
mov dword fs:[0], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 5], 0
je 0x427a61
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ebp + 0x18]
mov eax, ebx
call fcn.00426fb0
test al, al
je 0x4276c3
mov dword [ebp - 0x38], 0x770001
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
jmp 0x428232
test byte [ebp + 8], 2
jne 0x42771b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, ebx
call fcn.00426eb4
test al, al
je 0x4276e0
or dword [ebp + 8], 2
jmp 0x42771b
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
call fcn.004213f8
cmp byte [ebp - 0xa0], 0
je 0x427700
cmp byte [ebp - 0x78], 0
jne 0x427706
or dword [ebp + 8], 2
jmp 0x42771b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, ebx
call fcn.00427228
test al, al
je 0x42771b
or dword [ebp + 8], 2
test byte [ebp + 8], 2
jne 0x42775b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, ebx
call fcn.0042715c
mov edx, dword [ebp - 4]
mov byte [edx + 0xc], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427a71
cmp dword [ebp - 0x20], 0
je 0x427a71
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
call fcn.0041b580
jmp 0x427a71
test byte [ebp + 8], 0x10
jne 0x427a41
test ebx, ebx
je 0x4277c8
call sub.KERNEL32.dll_GetVersion
test eax, 0x80000000
jne 0x4277a8
lea edx, [ebp - 0x108]
mov eax, 0x4282ec
call fcn.0041dcd4
mov eax, dword [ebp - 0x108]
lea ecx, [ebp - 0x104]
mov dl, 1
call fcn.0041dd44
mov eax, dword [ebp - 0x104]
push eax
call sub.KERNEL32.dll_GetModuleHandleW
mov edi, eax
jmp 0x4277ca
mov eax, 0x4282ec
lea edx, [ebp - 0x10c]
call fcn.0041dcd4
mov eax, dword [ebp - 0x10c]
push eax
call sub.KERNEL32.dll_GetModuleHandleA
mov edi, eax
jmp 0x4277ca
xor edi, edi
cmp ebx, edi
je 0x427a21
call sub.KERNEL32.dll_GetVersion
test eax, 0x80000000
je 0x427802
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0x80000000
jae 0x427806
test ebx, ebx
je 0x427802
mov eax, ebx
call fcn.0041e400
mov edx, eax
mov eax, ebx
call fcn.0042715c
test al, al
jne 0x427806
xor eax, eax
jmp 0x427808
mov al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 0xc], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427836
cmp dword [ebp - 0x20], 0
je 0x427828
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
call fcn.0041b580
push 0
push 0xa
call fcn.004223d0
mov dword [ebp - 0x2c], eax
jmp 0x427843
mov eax, 0xa
call fcn.00424bf4
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov byte [eax], 0xff
mov eax, dword [ebp - 0x2c]
mov byte [eax + 1], 0x25
mov eax, dword [ebp - 0x2c]
add eax, 6
mov edx, dword [ebp - 0x2c]
mov dword [edx + 2], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x2c]
mov dword [edx + 6], eax
mov eax, dword [0x43cf5c]
mov dword [eax], fcn.004249a0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0xc]
mov edx, dword [ebp - 0x2c]
mov eax, 0x428300
call fcn.00424770
push 4
lea edx, [ebp - 0x114]
mov eax, 0x4282d8
call fcn.0041dcd4
push dword [ebp - 0x114]
push 0x4282cc
push dword [ebp - 0x24]
lea eax, [ebp - 0x110]
mov edx, 3
call fcn.0041b808
mov eax, dword [ebp - 0x110]
call fcn.0041b948
push eax
call fcn.00424378
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x427915
push 0
push 0
push 0
push 0xf001f
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.dll_MapViewOfFile
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x427907
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x18]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
push eax
call sub.KERNEL32.dll_UnmapViewOfFile
jmp 0x427915
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.dll_CloseHandle
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4279cc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 0x2c]
mov eax, ebx
call fcn.00424c80
test al, al
jne 0x427950
call fcn.00424e7c
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 8]
jne 0x4279cc
mov eax, dword [ebp - 0x2c]
call fcn.00424ea0
test al, al
je 0x4279cc
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427991
mov eax, dword [ebp - 0x14]
call fcn.004222c0
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.dll_CloseHandle
call fcn.00424e7c
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 8]
je 0x427991
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x2c]
call fcn.00424ef8
test byte [ebp + 8], 4
setne al
call fcn.00425318
xor eax, eax
push ebp
push 0x4279b7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x2c]
call fcn.00424e54
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4279c1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
jmp 0x427a71
cmp dword [ebp - 0x14], 0
je 0x4279db
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x4279f1
push 0
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004224f4
jmp 0x427a01
push 0x8000
push 0
mov eax, dword [ebp - 0x2c]
push eax
call sub.KERNEL32.dll_VirtualFree
mov dword [ebp - 0x38], 0x770002
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
jmp 0x428232
mov dword [ebp - 0x38], 0x770002
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
jmp 0x428232
mov dword [ebp - 0x38], 0x770002
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
jmp 0x428232
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 5], 0x53
sete al
mov edx, dword [ebp - 4]
mov byte [edx + 0xc], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427a80
test byte [ebp + 8], 4
jne 0x427a84
xor eax, eax
jmp 0x427a86
mov al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 0x24], al
test al, al
je 0x427c52
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0x80000000
jae 0x427bab
mov eax, dword [ebp - 4]
add eax, 0x18
push eax
lea eax, [ebp - 0xa0]
push eax
test byte [ebp + 8], 8
setne cl
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
xor edx, edx
call fcn.004227b0
mov edx, dword [ebp - 4]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
jne 0x427af5
mov dword [ebp - 0x38], 0x770003
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
jmp 0x428232
mov eax, dword [ebp - 0x80]
call fcn.0041c034
mov esi, eax
test esi, esi
jl 0x427b91
inc esi
xor ebx, ebx
mov eax, ebx
shl eax, 3
sub eax, ebx
mov edx, dword [ebp - 0x80]
lea ecx, [edx + eax*4]
cmp byte [ecx + 0x10], 0
jne 0x427b89
cmp dword [ecx + 0x18], 0
je 0x427b89
mov eax, dword [ecx + 0x18]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x14]
jne 0x427b89
mov eax, dword [ecx + 0x18]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x98]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x24], 0
jne 0x427b78
mov edx, 4
mov eax, dword [ebp - 0x34]
call fcn.00422718
test al, al
je 0x427b89
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
add eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x34]
mov dword [edx], eax
inc ebx
dec esi
jne 0x427b0a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
add eax, dword [ebp - 0x94]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x20]
mov dword [edx + 2], eax
jmp 0x427c52
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
call fcn.004213f8
cmp byte [ebp - 0xa0], 0
jne 0x427be5
mov dword [ebp - 0x38], 0x770003
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
call fcn.0041afb8
jmp 0x428232
mov eax, dword [ebp - 0x80]
call fcn.0041c034
mov esi, eax
test esi, esi
jl 0x427c52
inc esi
xor ebx, ebx
mov eax, ebx
shl eax, 3
sub eax, ebx
mov edx, dword [ebp - 0x80]
lea edi, [edx + eax*4]
cmp byte [edi + 0x10], 0
jne 0x427c4e
cmp dword [edi + 0x18], 0
je 0x427c4e
mov eax, dword [edi + 0x18]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x14]
jne 0x427c4e
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 0
jne 0x427c43
push 0
push 4
call fcn.004223d0
mov edx, dword [ebp - 4]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x20]
mov dword [edx + 2], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov edx, dword [edi + 0x18]
mov dword [edx], eax
inc ebx
dec esi
jne 0x427bf6
xor eax, eax
mov dword [ebp - 0x18], eax
xor ecx, ecx
push ebp
push 0x42816c
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 5], 0
je 0x427e9f
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427c8c
push 0
push 0x22
call fcn.004223d0
mov edx, dword [ebp - 4]
mov dword [edx + 0x38], eax
jmp 0x427cb9
call sub.KERNEL32.dll_GetVersion
test eax, 0x80000000
je 0x427ca9
push 0x22
push 0x40
call sub.KERNEL32.dll_LocalAlloc
mov edx, dword [ebp - 4]
mov dword [edx + 0x38], eax
jmp 0x427cb9
mov eax, 0x22
call fcn.00424bf4
mov edx, dword [ebp - 4]
mov dword [edx + 0x38], eax
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x38]
lea edx, [ebp - 0x60]
mov eax, ebx
call fcn.004201f4
cmp byte [ebp - 0x59], 0
je 0x427d3b
cmp dword [ebp - 0x4c], 1
jne 0x427cfa
cmp word [ebp - 0x5e], 0xeb
je 0x427cf2
mov byte [esi], 0xf
mov al, byte [ebp - 0x5e]
and al, 0xf
add al, 0x80
mov byte [esi + 1], al
add esi, 6
jmp 0x427d2d
mov byte [esi], 0xe9
add esi, 5
jmp 0x427d2d
cmp dword [ebp - 0x4c], 2
jne 0x427d1b
mov edi, dword [ebp - 0x40]
sub edi, ebx
mov ecx, edi
sub ecx, 3
mov edx, esi
mov eax, ebx
inc eax
call fcn.0041a5cc
add edi, esi
inc edi
mov esi, edi
jmp 0x427d2d
mov edi, dword [ebp - 0x40]
sub edi, ebx
mov edx, esi
mov eax, ebx
mov ecx, edi
call fcn.0041a5cc
add esi, edi
mov edx, dword [ebp - 0x58]
mov eax, esi
sub edx, eax
sub eax, 4
mov dword [eax], edx
jmp 0x427d4d
mov edi, dword [ebp - 0x40]
sub edi, ebx
mov edx, esi
mov eax, ebx
mov ecx, edi
call fcn.0041a5cc
add esi, edi
mov ebx, dword [ebp - 0x40]
mov eax, ebx
sub eax, dword [ebp - 0x30]
cmp eax, 6
jb 0x427cc2
mov byte [esi], 0xe9
add esi, 5
sub ebx, esi
sub esi, 4
mov dword [esi], ebx
push 4
lea edx, [ebp - 0x11c]
mov eax, 0x4282d8
call fcn.0041dcd4
push dword [ebp - 0x11c]
push 0x4282cc
push dword [ebp - 0x1c]
lea eax, [ebp - 0x118]
mov edx, 3
call fcn.0041b808
mov eax, dword [ebp - 0x118]
call fcn.0041b948
push eax
call fcn.00424378
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x427f54
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427dca
mov eax, dword [ebp - 0x14]
call fcn.004222c0
push 0
push 0
push 0
push 0xf001f
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.dll_MapViewOfFile
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x427f54
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427e04
push 0
push 0x5c
call fcn.004223d0
mov edx, dword [ebp - 0x18]
mov dword [edx], eax
jmp 0x427e13
mov eax, 0x5c
call fcn.00424bf4
mov edx, dword [ebp - 0x18]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [eax], 2
mov dword [eax + 4], 8
mov edx, dword [ebp - 0x30]
mov dword [eax + 0xc], edx
mov edx, dword [eax + 0xc]
mov ecx, dword [edx]
mov dword [eax + 0x10], ecx
mov cx, word [edx + 4]
mov word [eax + 0x14], cx
mov byte [eax + 0x16], 0xff
mov byte [eax + 0x17], 0x25
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x38]
add edx, 0x1e
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x38]
mov ecx, dword [eax + 0x18]
mov dword [ecx], edx
mov edx, dword [ebp - 4]
cmp byte [edx + 0xc], 0
jne 0x427e76
mov edx, dword [ebp - 4]
mov edx, dword [edx + 8]
cmp edx, dword [eax + 0xc]
jne 0x427e76
mov edx, dword [ebp - 0x14]
mov dword [eax + 8], edx
jmp 0x427e7b
xor edx, edx
mov dword [eax + 8], edx
xor edx, edx
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x38]
add edx, 0x1e
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x38]
mov dword [eax + 0x24], edx
xor edx, edx
mov dword [eax + 0x28], edx
jmp 0x427f54
push 0
push 0
push 0
push 0xf001f
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.dll_MapViewOfFile
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
mov eax, dword [ebx]
mov eax, dword [ebx + eax*8 + 0x14]
mov edx, dword [ebp - 4]
mov dword [edx + 0x38], eax
mov eax, dword [ebx + 4]
cmp eax, dword [ebx]
jne 0x427f54
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427ef2
push 0
mov eax, dword [ebx + 4]
add eax, eax
shl eax, 3
add eax, 0x1c
push eax
call fcn.004223d0
mov esi, eax
jmp 0x427f04
mov eax, dword [ebx + 4]
add eax, eax
shl eax, 3
add eax, 0x1c
call fcn.00424bf4
mov esi, eax
mov ecx, dword [ebx + 4]
shl ecx, 3
add ecx, 0x1c
mov edx, esi
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
call fcn.0041a5cc
mov eax, dword [ebx + 4]
add eax, eax
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [eax], esi
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x427f44
push 0
mov eax, dword [ebp - 0x28]
push eax
call fcn.004224f4
jmp 0x427f54
push 0x8000
push 0
mov eax, dword [ebp - 0x28]
push eax
call sub.KERNEL32.dll_VirtualFree
mov eax, dword [ebp - 4]
cmp byte [eax + 0x24], 0
jne 0x4280c6
test byte [ebp + 8], 1
jne 0x428026
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
add eax, 0xa
mov edx, dword [ebp - 4]
mov dword [edx + 0x28], eax
xor ebx, ebx
mov eax, ebx
shl eax, 3
sub eax, ebx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
lea eax, [edx + eax*2]
mov byte [eax], 0x68
xor edx, edx
mov dword [eax + 1], edx
mov byte [eax + 5], 0xf0
mov word [eax + 6], 0x2583
lea edx, [eax + 1]
mov dword [eax + 8], edx
mov byte [eax + 0xc], 0
mov byte [eax + 0xd], 0xc3
inc ebx
cmp ebx, 0x118
jne 0x427f7c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
add eax, 0xf50
mov esi, eax
mov edx, esi
mov eax, 0x426a74
mov ecx, dword [ebp - 0x3c]
call fcn.0041a5cc
mov eax, dword [ebp - 0x3c]
push eax
push 0
push 0
push 0xffffffffffffffff
mov eax, 0x428304
mov ecx, 4
mov edx, esi
call fcn.0041d1c0
add eax, esi
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x28]
mov dword [eax], edx
mov eax, dword [ebp - 0x3c]
push eax
push 0
push 0
push 0xffffffffffffffff
mov eax, 0x42830c
mov ecx, 4
mov edx, esi
call fcn.0041d1c0
add eax, esi
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x10]
sub edx, esi
sub edx, dword [ebp - 0x3c]
mov dword [eax], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x10], esi
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc], 0
je 0x4280c6
push 0
push 0x22
call fcn.004223d0
mov edx, dword [ebp - 4]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edi, eax
mov esi, 0x43cc1c
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor edx, edx
mov eax, 0x42831c
call fcn.004214c4
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1c]
inc edx
add edx, 5
sub eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1c]
mov dword [edx + 2], eax
call sub.KERNEL32.dll_GetCurrentProcessId
mov edx, dword [ebp - 4]
mov ebx, dword [edx + 0x1c]
mov dword [ebx + 7], eax
lea eax, [ebx + 0x14]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x14], eax
lea eax, [ebx + 0x1e]
mov dword [ebx + 0x1a], eax
lea eax, [ebx + 0x1e]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x20]
mov dword [edx + 2], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
push eax
call sub.KERNEL32.dll_GetCurrentProcessId
push eax
call sub.KERNEL32.dll_GetCurrentProcess
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 8]
pop edx
call fcn.00426604
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
mov ecx, dword [eax + edx*8 + 0x14]
mov dword [eax + edx*8 + 0x1c], ecx
mov ecx, dword [eax + edx*8 + 0x18]
mov dword [eax + edx*8 + 0x20], ecx
mov edx, dword [ebp - 4]
cmp byte [edx + 0xc], 0
je 0x42810b
mov edx, dword [ebp - 4]
cmp byte [edx + 0x24], 0
jne 0x42810b
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x1c]
mov dword [eax + edx*8 + 0x14], ecx
jmp 0x428117
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x10]
mov dword [eax + edx*8 + 0x14], ecx
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x20]
mov ecx, dword [ecx + 2]
mov dword [eax + edx*8 + 0x18], ecx
mov edx, dword [eax]
mov ecx, dword [eax + edx*8 + 0x1c]
mov edx, dword [eax + edx*8 + 0x18]
mov dword [edx], ecx
mov edx, dword [eax]
mov ecx, dword [eax + edx*8 + 0x14]
mov edx, dword [eax + edx*8 + 0x10]
mov dword [edx], ecx
inc dword [eax]
mov eax, dword [ebp - 4]
mov byte [eax + 4], 1
mov eax, dword [ebp - 4]
call fcn.004289d8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x428173
cmp dword [ebp - 0x18], 0
je 0x42816b
mov eax, dword [ebp - 0x18]
push eax
call sub.KERNEL32.dll_UnmapViewOfFile
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x428282
lea eax, [ebp - 0x11c]
mov edx, 0xf
call fcn.0041b50c
lea eax, [ebp - 0xe0]
mov edx, dword [0x41ed64]
mov ecx, 2
call fcn.0041bc0c
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.0041b50c
lea eax, [ebp + 0x18]
call fcn.0041b4e8
ret