Function at 0x421600
Capabilities:
Check os version
Get common file path
Get session user name

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x510260
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x356c
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x2c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x1c], 0
mov eax, 1
test eax, eax
je 0x421678
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x42166d
jmp 0x421678
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], edx
jmp 0x421647
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], 0
jmp 0x421693
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 9
jge 0x4216d7
cmp dword [ebp - 0x1c], 0
jge 0x4216a7
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x4216bd
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x28], 0xfa
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x42168a
mov dword [ebp - 0x22c], 0
jmp 0x4216f2
mov ecx, dword [ebp - 0x22c]
add ecx, 1
mov dword [ebp - 0x22c], ecx
cmp dword [ebp - 0x22c], 1
jge 0x421709
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x22c]
mov dword [ebp - 0x1c], edx
jmp 0x4216e3
cmp dword [ebp - 0x1c], 0
jge 0x421717
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x42172f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x230], 0
jmp 0x42174a
mov edx, dword [ebp - 0x230]
add edx, 1
mov dword [ebp - 0x230], edx
cmp dword [ebp - 0x230], 0x10
jge 0x421761
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x230]
mov dword [ebp - 0x1c], eax
jmp 0x42173b
cmp dword [ebp - 0x1c], 0
jge 0x42176f
mov ecx, dword [ebp - 0x1c]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x421787
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x234], 0
jmp 0x4217a2
mov edx, dword [ebp - 0x234]
add edx, 1
mov dword [ebp - 0x234], edx
cmp dword [ebp - 0x234], 0x19
jge 0x4217e3
cmp dword [ebp - 0x1c], 0
jge 0x4217b9
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4217cf
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x430]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x421793
mov dword [ebp - 0x434], 0
jmp 0x4217fe
mov eax, dword [ebp - 0x434]
add eax, 1
mov dword [ebp - 0x434], eax
cmp dword [ebp - 0x434], 1
jge 0x42183f
cmp dword [ebp - 0x1c], 0
jge 0x421815
mov ecx, dword [ebp - 0x1c]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x42182b
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x630]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4217ef
mov dword [ebp - 0x634], 0
jmp 0x42185a
mov eax, dword [ebp - 0x634]
add eax, 1
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0x1b
jge 0x42189b
cmp dword [ebp - 0x1c], 0
jge 0x421871
mov ecx, dword [ebp - 0x1c]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x421887
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x830]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x42184b
mov dword [ebp - 0x834], 0
jmp 0x4218b6
mov eax, dword [ebp - 0x834]
add eax, 1
mov dword [ebp - 0x834], eax
cmp dword [ebp - 0x834], 7
jge 0x421903
mov eax, dword [ebp - 0x834]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4218e5
mov eax, dword [ebp - 0x834]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4218f5
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x834]
mov dword [ebp - 0x1c], edx
jmp 0x421901
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x834]
mov dword [ebp - 0x1c], eax
jmp 0x4218a7
mov dword [ebp - 0x838], 0
jmp 0x42191e
mov ecx, dword [ebp - 0x838]
add ecx, 1
mov dword [ebp - 0x838], ecx
cmp dword [ebp - 0x838], 6
jge 0x421935
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x838]
mov dword [ebp - 0x1c], edx
jmp 0x42190f
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x421947
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x42195f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x421999
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x83c], eax
mov eax, dword [ebp - 0x83c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x42198b
jmp 0x421999
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x83c]
mov dword [ebp - 0x1c], edx
jmp 0x42195f
mov eax, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x840], 0
jmp 0x4219bd
mov ecx, dword [ebp - 0x840]
add ecx, 1
mov dword [ebp - 0x840], ecx
cmp dword [ebp - 0x840], 9
jge 0x4219fe
cmp dword [ebp - 0x1c], 0
jge 0x4219d4
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4219ea
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xa38]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4219ae
mov dword [ebp - 0xa3c], 0
jmp 0x421a19
mov eax, dword [ebp - 0xa3c]
add eax, 1
mov dword [ebp - 0xa3c], eax
cmp dword [ebp - 0xa3c], 6
jge 0x421a66
mov eax, dword [ebp - 0xa3c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x421a48
mov eax, dword [ebp - 0xa3c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x421a58
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa3c]
mov dword [ebp - 0x1c], edx
jmp 0x421a64
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xa3c]
mov dword [ebp - 0x1c], eax
jmp 0x421a0a
mov dword [ebp - 0xa40], 0
jmp 0x421a81
mov ecx, dword [ebp - 0xa40]
add ecx, 1
mov dword [ebp - 0xa40], ecx
cmp dword [ebp - 0xa40], 6
jge 0x421a98
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa40]
mov dword [ebp - 0x1c], edx
jmp 0x421a72
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x421aaa
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x421ac2
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa44], 0
jmp 0x421add
mov edx, dword [ebp - 0xa44]
add edx, 1
mov dword [ebp - 0xa44], edx
cmp dword [ebp - 0xa44], 4
jge 0x421b2a
cmp dword [ebp - 0x1c], 0
jge 0x421af4
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x421b0a
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xa48], 0xfa
lea edx, [ebp - 0xa48]
push edx
lea eax, [ebp - 0xc40]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x421ace
mov dword [ebp - 0xc44], 0
jmp 0x421b45
mov ecx, dword [ebp - 0xc44]
add ecx, 1
mov dword [ebp - 0xc44], ecx
cmp dword [ebp - 0xc44], 0x10
jge 0x421b92
mov eax, dword [ebp - 0xc44]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x421b74
mov eax, dword [ebp - 0xc44]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x421b84
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xc44]
mov dword [ebp - 0x1c], edx
jmp 0x421b90
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xc44]
mov dword [ebp - 0x1c], eax
jmp 0x421b36
mov dword [ebp - 0xc48], 0
jmp 0x421bad
mov ecx, dword [ebp - 0xc48]
add ecx, 1
mov dword [ebp - 0xc48], ecx
cmp dword [ebp - 0xc48], 9
jge 0x421bc4
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0xc48]
mov dword [ebp - 0x1c], edx
jmp 0x421b9e
cmp dword [ebp - 0x1c], 0
jge 0x421bd2
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x421bea
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc4c], 0
jmp 0x421c05
mov edx, dword [ebp - 0xc4c]
add edx, 1
mov dword [ebp - 0xc4c], edx
cmp dword [ebp - 0xc4c], 0xa
jge 0x421c52
cmp dword [ebp - 0x1c], 0
jge 0x421c1c
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x421c32
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc50], 0xfa
lea edx, [ebp - 0xc50]
push edx
lea eax, [ebp - 0xe48]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x421bf6
mov dword [ebp - 0xe4c], 0
jmp 0x421c6d
mov ecx, dword [ebp - 0xe4c]
add ecx, 1
mov dword [ebp - 0xe4c], ecx
cmp dword [ebp - 0xe4c], 1
jge 0x421cba
cmp dword [ebp - 0x1c], 0
jge 0x421c84
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x421c9a
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xe50], 0xfa
lea edx, [ebp - 0xe50]
push edx
lea eax, [ebp - 0x1048]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x421c5e
mov dword [ebp - 0x104c], 0
jmp 0x421cd5
mov ecx, dword [ebp - 0x104c]
add ecx, 1
mov dword [ebp - 0x104c], ecx
cmp dword [ebp - 0x104c], 7
jge 0x421cec
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x104c]
mov dword [ebp - 0x1c], edx
jmp 0x421cc6
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x421cfe
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x421d16
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1050], 0
jmp 0x421d31
mov edx, dword [ebp - 0x1050]
add edx, 1
mov dword [ebp - 0x1050], edx
cmp dword [ebp - 0x1050], 6
jge 0x421d48
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x1050]
mov dword [ebp - 0x1c], eax
jmp 0x421d22
cmp dword [ebp - 0x1c], 0
jge 0x421d56
mov ecx, dword [ebp - 0x1c]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x421d6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x1054], 0xffffffff
mov dword [ebp - 0x1058], 0
jmp 0x421d9a
mov edx, dword [ebp - 0x1058]
add edx, 1
mov dword [ebp - 0x1058], edx
cmp dword [ebp - 0x1058], 3
jge 0x421dcc
mov eax, dword [ebp - 0x1058]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x421dc1
mov edx, dword [ebp - 0x1054]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x421d8b
mov dword [ebp - 4], 0xfffffffe
jmp 0x421dec
mov edx, 1
test edx, edx
je 0x421e26
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x105c], eax
mov eax, dword [ebp - 0x105c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x421e18
jmp 0x421e26
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x105c]
mov dword [ebp - 0x1c], edx
jmp 0x421dec
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
mov dword [ebp - 0x1060], 0xffffffff
mov dword [ebp - 0x1064], 0
jmp 0x421e5b
mov ecx, dword [ebp - 0x1064]
add ecx, 1
mov dword [ebp - 0x1064], ecx
cmp dword [ebp - 0x1064], 5
jge 0x421e8d
mov eax, dword [ebp - 0x1064]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x421e82
mov edx, dword [ebp - 0x1060]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x421e4c
mov dword [ebp - 4], 0xfffffffe
jmp 0x421ead
mov dword [ebp - 0x1068], 0
jmp 0x421ec8
mov edx, dword [ebp - 0x1068]
add edx, 1
mov dword [ebp - 0x1068], edx
cmp dword [ebp - 0x1068], 5
jge 0x421edf
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1068]
mov dword [ebp - 0x1c], eax
jmp 0x421eb9
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x421ef1
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x421f09
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x106c], 0
jmp 0x421f24
mov edx, dword [ebp - 0x106c]
add edx, 1
mov dword [ebp - 0x106c], edx
cmp dword [ebp - 0x106c], 6
jge 0x421f71
mov eax, dword [ebp - 0x106c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x421f53
mov eax, dword [ebp - 0x106c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x421f63
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x106c]
mov dword [ebp - 0x1c], edx
jmp 0x421f6f
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x106c]
mov dword [ebp - 0x1c], eax
jmp 0x421f15
mov dword [ebp - 0x1070], 0
jmp 0x421f8c
mov ecx, dword [ebp - 0x1070]
add ecx, 1
mov dword [ebp - 0x1070], ecx
cmp dword [ebp - 0x1070], 1
jge 0x421fa3
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x1070]
mov dword [ebp - 0x1c], edx
jmp 0x421f7d
cmp dword [ebp - 0x1c], 0
jge 0x421fb1
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x421fc9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x422003
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1074], eax
mov eax, dword [ebp - 0x1074]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x421ff5
jmp 0x422003
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1074]
mov dword [ebp - 0x1c], edx
jmp 0x421fc9
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1078], 0
jmp 0x422027
mov ecx, dword [ebp - 0x1078]
add ecx, 1
mov dword [ebp - 0x1078], ecx
cmp dword [ebp - 0x1078], 3
jge 0x422074
cmp dword [ebp - 0x1c], 0
jge 0x42203e
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x422054
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x107c], 0xfa
lea edx, [ebp - 0x107c]
push edx
lea eax, [ebp - 0x1278]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x422018
mov dword [ebp - 0x127c], 0
jmp 0x42208f
mov ecx, dword [ebp - 0x127c]
add ecx, 1
mov dword [ebp - 0x127c], ecx
cmp dword [ebp - 0x127c], 1
jge 0x4220dc
cmp dword [ebp - 0x1c], 0
jge 0x4220a6
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x4220bc
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1280], 0xfa
lea edx, [ebp - 0x1280]
push edx
lea eax, [ebp - 0x1478]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x422080
mov dword [ebp - 4], 2
mov dword [ebp - 0x147c], 0xffffffff
mov dword [ebp - 0x1480], 0
jmp 0x422108
mov ecx, dword [ebp - 0x1480]
add ecx, 1
mov dword [ebp - 0x1480], ecx
cmp dword [ebp - 0x1480], 6
jge 0x42213a
mov eax, dword [ebp - 0x1480]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x42212f
mov edx, dword [ebp - 0x147c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4220f9
mov dword [ebp - 4], 0xfffffffe
jmp 0x42215a
mov dword [ebp - 0x1484], 0
jmp 0x422175
mov edx, dword [ebp - 0x1484]
add edx, 1
mov dword [ebp - 0x1484], edx
cmp dword [ebp - 0x1484], 7
jge 0x42218c
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1484]
mov dword [ebp - 0x1c], eax
jmp 0x422166
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x42219e
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4221b6
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1488], 0
jmp 0x4221d1
mov edx, dword [ebp - 0x1488]
add edx, 1
mov dword [ebp - 0x1488], edx
cmp dword [ebp - 0x1488], 0
jge 0x42221e
mov eax, dword [ebp - 0x1488]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x422200
mov eax, dword [ebp - 0x1488]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x422210
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1488]
mov dword [ebp - 0x1c], edx
jmp 0x42221c
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1488]
mov dword [ebp - 0x1c], eax
jmp 0x4221c2
mov dword [ebp - 0x148c], 0
jmp 0x422239
mov ecx, dword [ebp - 0x148c]
add ecx, 1
mov dword [ebp - 0x148c], ecx
cmp dword [ebp - 0x148c], 4
jge 0x42227a
cmp dword [ebp - 0x1c], 0
jge 0x422250
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x422266
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1688]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x42222a
mov dword [ebp - 4], 3
mov dword [ebp - 0x168c], 0xffffffff
mov dword [ebp - 0x1690], 0
jmp 0x4222a6
mov eax, dword [ebp - 0x1690]
add eax, 1
mov dword [ebp - 0x1690], eax
cmp dword [ebp - 0x1690], 3
jge 0x4222d8
mov eax, dword [ebp - 0x1690]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4222cd
mov edx, dword [ebp - 0x168c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x422297
mov dword [ebp - 4], 0xfffffffe
jmp 0x4222f8
mov dword [ebp - 0x1694], 0
jmp 0x422313
mov edx, dword [ebp - 0x1694]
add edx, 1
mov dword [ebp - 0x1694], edx
cmp dword [ebp - 0x1694], 4
jge 0x422354
cmp dword [ebp - 0x1c], 0
jge 0x42232a
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x422340
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1890]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x422304
mov dword [ebp - 0x1894], 0
jmp 0x42236f
mov eax, dword [ebp - 0x1894]
add eax, 1
mov dword [ebp - 0x1894], eax
cmp dword [ebp - 0x1894], 0
jge 0x422386
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x1894]
mov dword [ebp - 0x1c], ecx
jmp 0x422360
cmp dword [ebp - 0x1c], 0
jge 0x422394
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x4223ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1898], 0
jmp 0x4223c7
mov edx, dword [ebp - 0x1898]
add edx, 1
mov dword [ebp - 0x1898], edx
cmp dword [ebp - 0x1898], 5
jge 0x422408
cmp dword [ebp - 0x1c], 0
jge 0x4223de
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4223f4
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1a90]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4223b8
mov eax, 1
test eax, eax
je 0x422442
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1a94], eax
mov eax, dword [ebp - 0x1a94]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x422434
jmp 0x422442
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1a94]
mov dword [ebp - 0x1c], edx
jmp 0x422408
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1a98], 0
jmp 0x422466
mov ecx, dword [ebp - 0x1a98]
add ecx, 1
mov dword [ebp - 0x1a98], ecx
cmp dword [ebp - 0x1a98], 7
jge 0x42247d
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x1a98]
mov dword [ebp - 0x1c], edx
jmp 0x422457
cmp dword [ebp - 0x1c], 0
jge 0x42248b
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x4224a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1a9c], 0
jmp 0x4224be
mov edx, dword [ebp - 0x1a9c]
add edx, 1
mov dword [ebp - 0x1a9c], edx
cmp dword [ebp - 0x1a9c], 3
jge 0x4224d5
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x1a9c]
mov dword [ebp - 0x1c], eax
jmp 0x4224af
cmp dword [ebp - 0x1c], 0
jge 0x4224e3
mov ecx, dword [ebp - 0x1c]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x4224fb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1aa0], 0
jmp 0x422516
mov edx, dword [ebp - 0x1aa0]
add edx, 1
mov dword [ebp - 0x1aa0], edx
cmp dword [ebp - 0x1aa0], 0
jge 0x42252d
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1aa0]
mov dword [ebp - 0x1c], eax
jmp 0x422507
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x42253f
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x422557
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x422591
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1aa4], eax
mov eax, dword [ebp - 0x1aa4]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x422583
jmp 0x422591
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1aa4]
mov dword [ebp - 0x1c], edx
jmp 0x422557
mov eax, dword [ebp - 0x1c]
add eax, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1aa8], 0
jmp 0x4225b5
mov ecx, dword [ebp - 0x1aa8]
add ecx, 1
mov dword [ebp - 0x1aa8], ecx
cmp dword [ebp - 0x1aa8], 6
jge 0x4225f6
cmp dword [ebp - 0x1c], 0
jge 0x4225cc
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4225e2
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1ca0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4225a6
mov dword [ebp - 4], 4
mov dword [ebp - 0x1ca4], 0xffffffff
mov dword [ebp - 0x1ca8], 0
jmp 0x422622
mov eax, dword [ebp - 0x1ca8]
add eax, 1
mov dword [ebp - 0x1ca8], eax
cmp dword [ebp - 0x1ca8], 2
jge 0x422654
mov eax, dword [ebp - 0x1ca8]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x422649
mov edx, dword [ebp - 0x1ca4]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x422613
mov dword [ebp - 4], 0xfffffffe
jmp 0x422674
mov dword [ebp - 0x1cac], 0
jmp 0x42268f
mov edx, dword [ebp - 0x1cac]
add edx, 1
mov dword [ebp - 0x1cac], edx
cmp dword [ebp - 0x1cac], 8
jge 0x4226d0
cmp dword [ebp - 0x1c], 0
jge 0x4226a6
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4226bc
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1ea8]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x422680
mov dword [ebp - 0x1eac], 0
jmp 0x4226eb
mov eax, dword [ebp - 0x1eac]
add eax, 1
mov dword [ebp - 0x1eac], eax
cmp dword [ebp - 0x1eac], 0
jge 0x422702
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x1eac]
mov dword [ebp - 0x1c], ecx
jmp 0x4226dc
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x422714
mov edx, dword [ebp - 0x1c]
imul edx, edx, 0xfffffffb
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x42272c
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1eb0], 0
jmp 0x422747
mov edx, dword [ebp - 0x1eb0]
add edx, 1
mov dword [ebp - 0x1eb0], edx
cmp dword [ebp - 0x1eb0], 1
jge 0x422794
mov eax, dword [ebp - 0x1eb0]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x422776
mov eax, dword [ebp - 0x1eb0]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x422786
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1eb0]
mov dword [ebp - 0x1c], edx
jmp 0x422792
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1eb0]
mov dword [ebp - 0x1c], eax
jmp 0x422738
mov dword [ebp - 0x1eb4], 0
jmp 0x4227af
mov ecx, dword [ebp - 0x1eb4]
add ecx, 1
mov dword [ebp - 0x1eb4], ecx
cmp dword [ebp - 0x1eb4], 3
jge 0x4227fc
mov eax, dword [ebp - 0x1eb4]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4227de
mov eax, dword [ebp - 0x1eb4]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4227ee
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1eb4]
mov dword [ebp - 0x1c], edx
jmp 0x4227fa
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1eb4]
mov dword [ebp - 0x1c], eax
jmp 0x4227a0
mov dword [ebp - 0x1eb8], 0
jmp 0x422817
cmp dword [ebp - 0x1eb8], 3
jge 0x422864
cmp dword [ebp - 0x1c], 0
jge 0x42282e
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x422844
mov dword [ebp - 4], 5
mov dword [ebp - 0x20bc], 0xffffffff
mov dword [ebp - 0x20c0], 0
jmp 0x422890
cmp dword [ebp - 0x20c0], 3
jge 0x4228c2