Function at 0x420e28
Capabilities:
Get system information on windows
Set file attributes

Disassembly:
push 0x4e4
mov eax, 0x475e66
call fcn.00472eab
mov edi, ecx
mov dword [ebp - 0x42c], edi
xor ebx, ebx
mov esi, ebx
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x448], esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x4c4], ebx
mov byte [ebp - 4], 1
mov dword [ebp - 0x4b8], ebx
mov byte [ebp - 4], 2
mov dword [ebp - 0x464], ebx
mov byte [ebp - 4], 3
mov dword [ebp - 0x4a4], ebx
mov byte [ebp - 4], 4
mov dword [ebp - 0x4a0], ebx
mov byte [ebp - 4], 5
mov dword [ebp - 0x454], ebx
mov byte [ebp - 4], 6
mov dword [ebp - 0x444], ebx
mov byte [ebp - 4], 7
mov dword [ebp - 0x49c], ebx
mov byte [ebp - 4], 8
mov dword [ebp - 0x498], ebx
mov byte [ebp - 4], 9
mov dword [ebp - 0x494], ebx
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x460], ebx
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x480], ebx
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x490], ebx
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x488], ebx
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x4cc], ebx
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x47c], ebx
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x48c], ebx
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x4c0], ebx
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x4b4], ebx
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x4bc], ebx
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x4b0], ebx
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x4ac], ebx
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x440], ebx
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x478], ebx
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x43c], ebx
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x4a8], ebx
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x484], ebx
mov byte [ebp - 4], 0x1b
mov dword [ebp - 0x474], ebx
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x44c], ebx
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x470], ebx
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x46c], 1
mov dword [ebp - 0x450], ebx
test edi, edi
jne 0x420faf
mov ebx, 0x80070057
mov ecx, ebx
call fcn.00427566
jmp 0x422a82
cmp dword [edi + 0x48], ebx
jne 0x421040
cmp dword [edi + 0x4c], 5
je 0x421083
cmp dword [edi + 0x4c], 6
je 0x421083
mov eax, dword [edi + 0x50]
cmp dword [edi + 0x4c], 8
jne 0x421040
cmp eax, 3
je 0x421040
mov eax, dword [0x479b84]
test eax, eax
je 0x420fe8
cmp eax, 0xffffffff
jne 0x420fea
mov eax, ebx
push 0x40aff0
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
lea ecx, [ebp - 0x488]
call fcn.00420d05
mov ecx, eax
mov dword [ebp - 0x428], ecx
test ecx, ecx
jns 0x421040
mov eax, dword [0x479b84]
test eax, eax
je 0x421023
cmp eax, 0xffffffff
jne 0x421025
mov eax, ebx
push ecx
push 0x40b050
push dword [0x47c110]
push eax
call fcn.0041704b
mov dword [ebp - 0x428], ebx
add esp, 0x10
cmp dword [edi + 0x50], 9
jne 0x421406
lea eax, [ebp - 0x48c]
push eax
push 0x110
push ebx
push 0x40b0cc
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea edx, [ebp - 0x428]
mov ecx, eax
call fcn.00427535
test eax, eax
jne 0x4210e9
mov ebx, dword [ebp - 0x428]
jmp 0x420fa3
mov eax, dword [edi + 0x50]
cmp eax, 3
je 0x420fcf
mov eax, dword [0x479b84]
test eax, eax
je 0x42109d
cmp eax, 0xffffffff
jne 0x42109f
mov eax, ebx
push 0x40af30
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
lea ecx, [ebp - 0x488]
call fcn.00420d05
mov ecx, eax
mov dword [ebp - 0x428], ecx
test ecx, ecx
jns 0x421040
mov eax, dword [0x479b84]
test eax, eax
je 0x4210dc
cmp eax, 0xffffffff
jne 0x4210de
mov eax, ebx
push ecx
push 0x40af80
jmp 0x42102b
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov esi, eax
mov dword [ebp - 0x4c0], esi
test esi, esi
je 0x422a66
xor edi, edi
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x438], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [ebp - 0x468], eax
lea eax, [ebp - 0x484]
push ecx
push eax
mov dword [ebp - 0x430], edx
mov edx, 0x40b0cc
push 0x40b0e8
call fcn.00427eb7
test eax, eax
js 0x42130e
mov ecx, dword [ebp - 0x484]
call fcn.0042d7e9
test eax, eax
je 0x42130e
test edi, edi
ja 0x42130e
jb 0x42116c
cmp ebx, 0x493e0
jae 0x42130e
mov eax, dword [0x479b84]
test eax, eax
je 0x42117a
cmp eax, 0xffffffff
jne 0x42117c
xor eax, eax
push 0x40b0f8
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
push 1
push esi
push 4
push 1
push dword [ebp - 0x48c]
call dword [sym.imp.ADVAPI32.dll_RegNotifyChangeKeyValue]
lea edx, [ebp - 0x428]
mov ecx, eax
call fcn.00427535
test eax, eax
je 0x421303
push 0xea60
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4211f1
mov eax, dword [0x479b84]
test eax, eax
je 0x4211d9
cmp eax, 0xffffffff
jne 0x4211db
xor eax, eax
push 0x40b1a0
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
jmp 0x421243
test eax, eax
je 0x421243
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [0x479b84]
test eax, eax
je 0x42120b
cmp eax, 0xffffffff
jne 0x42120d
xor eax, eax
push ebx
push 0x40b238
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
test ebx, ebx
jle 0x42122f
movzx ebx, bx
or ebx, 0x80070000
mov dword [ebp - 0x428], ebx
test ebx, ebx
js 0x422a75
mov ebx, dword [ebp - 0x434]
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, eax
mov edi, edx
sub ecx, dword [ebp - 0x468]
sbb edi, dword [ebp - 0x430]
cmp edi, edx
ja 0x421275
jb 0x421263
cmp ecx, eax
ja 0x421275
mov ebx, ecx
mov dword [ebp - 0x438], edi
mov dword [ebp - 0x434], ebx
xor edi, edi
jmp 0x421283
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.00427566
mov ecx, edi
call fcn.0042757e
test edi, edi
jns 0x4212a3
mov ebx, 0x493e0
xor eax, eax
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x438], eax
jmp 0x4212a9
mov eax, dword [ebp - 0x438]
mov edi, dword [0x479b84]
test edi, edi
je 0x4212b8
cmp edi, 0xffffffff
jne 0x4212ba
xor edi, edi
push 0
push 0x3e8
push eax
push ebx
call fcn.00475320
push edx
push eax
push 0x40b2c0
push dword [0x47c110]
push edi
call fcn.0041704b
add esp, 0x10
lea eax, [ebp - 0x484]
mov edx, 0x40b0cc
push eax
push 0x40b0e8
call fcn.00427eb7
test eax, eax
js 0x42130e
mov edi, dword [ebp - 0x438]
jmp 0x421143
mov ebx, dword [ebp - 0x428]
jmp 0x422a75
push 0x5dc
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x428]
mov ecx, 0x40b360
push eax
lea edx, [ebp - 0x440]
call fcn.00425d21
mov ebx, eax
test ebx, ebx
js 0x422a75
cmp dword [ebp - 0x428], 0
mov esi, dword [ebp - 0x440]
je 0x4213de
mov eax, dword [0x479b84]
test eax, eax
je 0x42135b
cmp eax, 0xffffffff
jne 0x42135d
xor eax, eax
push 0x40b3b0
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [0x479b84]
mov edi, eax
test ecx, ecx
je 0x42138b
cmp ecx, 0xffffffff
jne 0x42138d
xor ecx, ecx
push edi
push 0x40b3f8
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
test edi, edi
je 0x4213ba
cmp edi, 0x80
je 0x4213ba
mov ecx, 0x8000ffff
mov ebx, ecx
jmp 0x422a77
mov eax, dword [0x479b84]
test eax, eax
je 0x4213c8
cmp eax, 0xffffffff
jne 0x4213ca
xor eax, eax
push 0x40b44c
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
test esi, esi
je 0x4213f0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x440], 0
call fcn.004208ce
mov ebx, eax
test ebx, ebx
js 0x422a75
xor ebx, ebx
jmp 0x422a7c
mov eax, dword [edi + 0x4c]
cmp eax, 5
jne 0x4214a4
push 0x30
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x430], esi
mov byte [ebp - 4], 0x1f
test esi, esi
je 0x42147e
push 0x30
push ebx
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
lea ecx, [esi + 4]
neg ecx
mov eax, esi
sbb ecx, ecx
push 0x30
and ecx, eax
push ebx
push ecx
call sub.msvcrt.dll_memset
mov dword [esi], 0x40101c
add esp, 0xc
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x28], ebx
mov edi, dword [ebp - 0x42c]
jmp 0x421486
mov esi, ebx
mov dword [ebp - 0x424], esi
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x448], esi
test esi, esi
jne 0x42168b
mov ecx, 0x8007000e
mov ebx, ecx
jmp 0x420fa5
cmp eax, 6
jne 0x421501
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x430], esi
mov byte [ebp - 4], 0x20
test esi, esi
je 0x42147e
push 8
xor eax, eax
mov edi, esi
pop ecx
rep stosd dword es:[edi], eax
lea edi, [esi + 4]
mov edx, esi
neg edi
push 8
sbb edi, edi
and edi, edx
pop ecx
rep stosd dword es:[edi], eax
mov dword [esi], 0x40110c
and dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x18], ebx
jmp 0x421476
cmp eax, 7
jne 0x421562
push 0x18
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x430], esi
mov byte [ebp - 4], 0x21
test esi, esi
je 0x42147e
push 6
xor eax, eax
mov edi, esi
pop ecx
rep stosd dword es:[edi], eax
lea edi, [esi + 4]
mov edx, esi
neg edi
push 6
sbb edi, edi
pop ecx
and edi, edx
rep stosd dword es:[edi], eax
mov dword [esi], 0x4010f0
and dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
jmp 0x421476
cmp eax, 4
je 0x42163d
cmp eax, 2
je 0x42163d
cmp eax, 1
jne 0x4215dc
push 0x28
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x430], esi
mov byte [ebp - 4], 0x23
test esi, esi
je 0x42147e
push 0xa
xor eax, eax
mov edi, esi
pop ecx
rep stosd dword es:[edi], eax
lea edi, [esi + 4]
mov edx, esi
neg edi
push 0xa
sbb edi, edi
pop ecx
and edi, edx
rep stosd dword es:[edi], eax
mov dword [esi], 0x40112c
mov dword [esi + 4], 1
xor ebx, ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
jmp 0x421476
cmp eax, 8
jne 0x421633
push 0x20
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x430], esi
mov byte [ebp - 4], 0x24
test esi, esi
je 0x42147e
push 8
xor eax, eax
mov edi, esi
pop ecx
rep stosd dword es:[edi], eax
lea edi, [esi + 4]
mov edx, esi
neg edi
push 8
sbb edi, edi
pop ecx
and edi, edx
rep stosd dword es:[edi], eax
mov dword [esi], 0x4010b4
mov dword [esi + 4], 8
jmp 0x4215c9
mov ecx, 0x8000ffff
jmp 0x42149d
push 0x18
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x430], esi
mov byte [ebp - 4], 0x22
test esi, esi
je 0x42147e
push 6
xor eax, eax
mov edi, esi
pop ecx
rep stosd dword es:[edi], eax
lea edi, [esi + 4]
mov edx, esi
neg edi
push 6
sbb edi, edi
pop ecx
and edi, edx
rep stosd dword es:[edi], eax
mov dword [esi], 0x40104c
jmp 0x42154f
lea eax, [ebp - 0x46c]
mov ecx, edi
push eax
lea edx, [ebp - 0x434]
call fcn.0042079f
test eax, eax
js 0x4216d5
cmp dword [ebp - 0x434], 0
je 0x4216d5
mov eax, dword [0x479b84]
test eax, eax
je 0x4216ba
cmp eax, 0xffffffff
jne 0x4216bc
mov eax, ebx
push 0x40b48c
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
jmp 0x422a82
push 0x208
lea eax, [ebp - 0x420]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x420]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x421715
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.0042754e
mov ebx, eax
jmp 0x420fa3
cmp eax, 0x104
jb 0x421726
mov ebx, 0x8007007a
jmp 0x420fa3
lea edx, [ebp - 0x43c]
call fcn.00426e31
mov ebx, eax
test ebx, ebx
js 0x420fa3
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x421701
lea eax, [ebp - 0x4c4]
mov edx, 0x40b4ac
push eax
push 0
lea ecx, [ebp - 0x218]
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x420fa3
lea eax, [ebp - 0x4b8]
mov edx, 0x407a68
push eax
push 0
lea ecx, [ebp - 0x218]
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x420fa3
push ecx
mov ecx, dword [ebp - 0x4b8]
lea edx, [ebp - 0x464]
call fcn.0042700b
mov ebx, eax
test ebx, ebx
js 0x420fa3
cmp dword [edi + 0x4c], 7
lea eax, [ebp - 0x454]
push eax
jne 0x421814
mov esi, dword [ebp - 0x464]
xor edi, edi
push edi
mov edx, 0x407a80
mov ecx, esi
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x422a75
lea eax, [ebp - 0x49c]
mov edx, 0x407b90
push eax
push edi
mov ecx, esi
call fcn.004268f1
mov ebx, eax
test ebx, ebx
jns 0x421831
jmp 0x422a75
mov ecx, dword [ebp - 0x464]
xor edi, edi
push edi
mov edx, 0x40b4c0
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x420fa3
mov esi, dword [ebp - 0x454]
lea eax, [ebp - 0x444]
push eax
push edi
mov edx, 0x40b4dc
mov ecx, esi
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x422a75
lea eax, [ebp - 0x480]
mov edx, 0x40b4ec
push eax
push edi
mov ecx, esi
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x422a75
lea eax, [ebp - 0x498]
mov edx, 0x40b504
push eax
push edi
mov ecx, esi
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x422a75
lea eax, [ebp - 0x494]
mov edx, 0x40b528
push eax
push edi
mov ecx, esi
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x422a75
mov ecx, dword [ebp - 0x43c]
lea eax, [ebp - 0x460]
push eax
push edi
mov edx, 0x40b4ec
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x422a75
mov eax, dword [ebp - 0x42c]
mov esi, dword [ebp - 0x424]
push dword [eax + 0x30]
mov edi, dword [esi]
push dword [eax + 0x50]
push dword [ebp - 0x444]
mov ecx, dword [edi]
push dword [eax + 0x18]
lea eax, [ebp - 0x420]
push eax
call dword [0x47d838]
mov ecx, esi
call dword [edi]
mov ebx, eax
test ebx, ebx
js 0x420fa3
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x4f0]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x4f0]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
lea ecx, [ebp - 0x4c8]
call fcn.004244a8
mov ebx, eax
test ebx, ebx
js 0x420fa3
mov eax, dword [ebp - 0x42c]
cmp dword [eax + 0x4c], 7
je 0x4220fb
movzx eax, word [ebp - 0x4f0]
cmp eax, dword [ebp - 0x4c8]
je 0x421963
mov ebx, 0x800700d8
jmp 0x420fa3
lea eax, [ebp - 0x428]
mov ecx, 0x40b5f0
push eax
lea edx, [ebp - 0x4b4]
call fcn.00425d21
mov ebx, eax
test ebx, ebx
js 0x420fa3
cmp dword [ebp - 0x428], 0
je 0x4219a7
mov eax, dword [0x479b84]
test eax, eax
je 0x42199b
cmp eax, 0xffffffff
jne 0x42199d
xor eax, eax
push 0x40b638
jmp 0x42213e
push ecx
lea eax, [ebp - 0x438]
mov edi, 0x407934
push eax
mov ebx, 0x406d9c
push edi
mov edx, ebx
call fcn.00427da7
test eax, eax
js 0x421a24
cmp dword [ebp - 0x438], 0
je 0x421a24
mov eax, dword [0x479b84]
test eax, eax
je 0x4219dc
cmp eax, 0xffffffff
jne 0x4219de
xor eax, eax
push 0x40b688
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
mov edx, ebx
push edi
call fcn.004246f3
test eax, eax
jns 0x421a24
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x421a0d
cmp ecx, 0xffffffff
jne 0x421a0f
xor ecx, ecx
push eax
push 0x40b6d8
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
lea eax, [ebp - 0x428]
mov ecx, 0x40b360
push eax
lea edx, [ebp - 0x440]
call fcn.00425d21
mov ebx, eax
test ebx, ebx
js 0x420fa3
cmp dword [ebp - 0x428], 0
mov esi, dword [ebp - 0x440]
je 0x421ae1
mov eax, dword [0x479b84]
test eax, eax
je 0x421a66
cmp eax, 0xffffffff
jne 0x421a68
xor eax, eax
push 0x40b3b0
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [0x479b84]
mov edi, eax
test ecx, ecx
je 0x421a96
cmp ecx, 0xffffffff
jne 0x421a98
xor ecx, ecx
push edi
push 0x40b3f8
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
test edi, edi
je 0x421abd
cmp edi, 0x80
jne 0x4213ae
mov eax, dword [0x479b84]
test eax, eax
je 0x421acb
cmp eax, 0xffffffff
jne 0x421acd
xor eax, eax
push 0x40b44c
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
test esi, esi
je 0x421af3
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x440], 0
mov eax, dword [ebp - 0x42c]
cmp dword [eax + 0x4c], 5
je 0x421b05
cmp dword [eax + 0x4c], 6
jne 0x421b34
call fcn.004208ce
test eax, eax
jns 0x421b34
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x421b1d
cmp ecx, 0xffffffff
jne 0x421b1f
xor ecx, ecx
push eax
push 0x40b738
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
lea eax, [ebp - 0x428]
mov ecx, 0x40b7a8
push eax
lea edx, [ebp - 0x4b0]
call fcn.00425d21
mov ebx, eax
test ebx, ebx
js 0x422a75
cmp dword [ebp - 0x428], 0
je 0x421b8c
mov eax, dword [0x479b84]
test eax, eax
je 0x421b6c
cmp eax, 0xffffffff
jne 0x421b6e
xor eax, eax
push 0x40b7e8
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
mov ecx, 0x80070652
jmp 0x4213b3
lea eax, [ebp - 0x428]
mov ecx, 0x40b840
push eax
lea edx, [ebp - 0x4ac]
call fcn.00425d21
mov ebx, eax
test ebx, ebx
js 0x422a75
cmp dword [ebp - 0x428], 0
je 0x421be6
push 2
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x421bcf
mov ecx, eax
call fcn.00449e30
test eax, eax
jns 0x421be6
mov eax, dword [0x479b84]
test eax, eax
je 0x421bdd
cmp eax, 0xffffffff
jne 0x421bdf
xor eax, eax
push 0x40b890
jmp 0x421b73
lea eax, [ebp - 0x428]
mov ecx, 0x40b8f8
push eax
lea edx, [ebp - 0x478]
call fcn.00425d21
mov ebx, eax
test ebx, ebx
js 0x422a75
cmp dword [ebp - 0x428], 0
mov esi, dword [ebp - 0x478]
je 0x421ca3
mov eax, dword [0x479b84]
test eax, eax
je 0x421c28
cmp eax, 0xffffffff
jne 0x421c2a
xor eax, eax
push 0x40b948
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [0x479b84]
mov edi, eax
test ecx, ecx
je 0x421c58
cmp ecx, 0xffffffff
jne 0x421c5a
xor ecx, ecx
push edi
push 0x40b990
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
test edi, edi
je 0x421c7f
cmp edi, 0x80
jne 0x4213ae
mov eax, dword [0x479b84]
test eax, eax
je 0x421c8d
cmp eax, 0xffffffff
jne 0x421c8f
xor eax, eax
push 0x40b9e4
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
test esi, esi
je 0x421cb5
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x478], 0
mov esi, dword [ebp - 0x424]
mov eax, dword [ebp - 0x42c]
mov edi, dword [ebp - 0x454]
mov ecx, edi
mov edx, dword [eax + 0x50]
call fcn.0041f70b
test eax, eax
jns 0x421cfb
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x421ce4
cmp ecx, 0xffffffff
jne 0x421ce6
xor ecx, ecx
push eax
push 0x40ba28
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
and dword [ebp - 0x458], 0
lea edx, [ebp - 0x430]
mov ecx, edi
call fcn.00426bf6
mov ebx, eax
test ebx, ebx
js 0x420fa3
cmp dword [ebp - 0x430], 0
je 0x421d94
mov eax, dword [esi]
lea ecx, [ebp - 0x458]
push ecx
mov ecx, dword [ebp - 0x42c]
mov ebx, dword [eax + 4]
push dword [ecx + 0x30]
mov ecx, ebx
call dword [0x47d838]
mov ecx, esi
call ebx
mov ebx, eax
sub eax, 0xc1900127
neg eax
sbb eax, eax
and dword [ebp - 0x46c], eax
test ebx, ebx
js 0x420fa3
cmp dword [ebp - 0x458], 0
mov ecx, 0x40805c
jne 0x421d6f
mov ecx, 0x408064
mov eax, dword [0x479b84]
test eax, eax
je 0x421d7d
cmp eax, 0xffffffff
jne 0x421d7f
xor eax, eax
push ecx
push 0x40ba6c
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
cmp dword [ebp - 0x458], 0
jne 0x422038
mov eax, dword [0x479b84]
test eax, eax
je 0x421daf
cmp eax, 0xffffffff
jne 0x421db1
xor eax, eax
push 0x40baa8
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
call fcn.0041feb6
test eax, eax
jns 0x421df4
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x421ddd
cmp ecx, 0xffffffff
jne 0x421ddf
xor ecx, ecx
push eax
push 0x40baf0
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
mov eax, dword [0x479b84]
test eax, eax
je 0x421e02
cmp eax, 0xffffffff
jne 0x421e04
xor eax, eax
push 0x40a338
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
call fcn.004247c7
test eax, eax
jns 0x421e47
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x421e30
cmp ecx, 0xffffffff
jne 0x421e32
xor ecx, ecx
push eax
push 0x40bb60
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
mov eax, dword [0x479b84]
test eax, eax
je 0x421e55
cmp eax, 0xffffffff
jne 0x421e57
xor eax, eax
push 0x40a380
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
mov edx, 0x40a090
push 0x40a3dc
call fcn.004246f3
mov ebx, 0x40bbc8
test eax, eax
jns 0x421ea5
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x421e92
cmp ecx, 0xffffffff
jne 0x421e94
xor ecx, ecx
push eax
push ebx
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
mov eax, dword [0x479b84]
test eax, eax
je 0x421eb3
cmp eax, 0xffffffff
jne 0x421eb5
xor eax, eax
push 0x40a400
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
mov edx, 0x40a090
push 0x40a080
call fcn.004246f3
test eax, eax
jns 0x421efe
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x421eeb
cmp ecx, 0xffffffff
jne 0x421eed
xor ecx, ecx
push eax
push ebx
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
mov eax, dword [0x479b84]
test eax, eax
je 0x421f0c
cmp eax, 0xffffffff
jne 0x421f0e
xor eax, eax
push 0x40a448
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
mov edx, 0x40a090
call fcn.004261d6
test eax, eax
jns 0x421f56
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x421f3f
cmp ecx, 0xffffffff
jne 0x421f41
xor ecx, ecx
push eax
push 0x40bc38
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
mov eax, dword [0x479b84]
test eax, eax
je 0x421f64
cmp eax, 0xffffffff
jne 0x421f66
xor eax, eax
push 0x40bca0
push dword [0x47c110]
push eax
call fcn.0041704b
mov ecx, dword [ebp - 0x464]
lea eax, [ebp - 0x4a4]
add esp, 0xc
mov edx, 0x40bcd0
push eax
push 0
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x420fa3
mov ecx, dword [ebp - 0x4a4]
lea eax, [ebp - 0x4a0]
push eax
push 0
mov edx, 0x40a080
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x420fa3
mov eax, dword [ebp - 0x42c]
push dword [ebp - 0x4a0]
mov edx, dword [ebp - 0x218]
push edi
mov ecx, dword [eax + 0x4c]
call fcn.00420115
mov ebx, eax
test ebx, ebx
js 0x420fa3
cmp dword [ebp - 0x458], 0
jne 0x422038
mov eax, dword [0x479b84]
test eax, eax
je 0x421ffc
cmp eax, 0xffffffff
jne 0x421ffe
xor eax, eax
push edi
push 0x40bce8
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
mov ecx, edi
call fcn.00425d4b
mov ebx, eax
test ebx, ebx
js 0x420fa3
push 0x2002
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x421701
mov edi, dword [ebp - 0x444]
mov ecx, edi
call fcn.0042ba2b
test eax, eax
jne 0x422244
mov eax, dword [0x479b84]
test eax, eax
je 0x42205b
cmp eax, 0xffffffff
jne 0x42205d
xor eax, eax
push edi
push 0x407654
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
mov ecx, edi
call fcn.0044b04f
mov ebx, eax
test ebx, ebx
js 0x420fa3
mov eax, dword [ebp - 0x42c]
cmp dword [eax + 0x4c], 6
jne 0x422244
mov ecx, dword [ebp - 0x43c]
lea eax, [ebp - 0x490]
push eax
push 0
mov edx, 0x40bd2c
call fcn.004268f1
mov ebx, eax
test ebx, ebx
js 0x420fa3
mov ecx, dword [ebp - 0x490]
lea eax, [ebp - 0x47c]
push eax
call fcn.00416cd6
test eax, eax
jns 0x422157
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x4220df
cmp ecx, 0xffffffff
jne 0x4220e1
xor ecx, ecx
push eax
push 0x40bd40
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
jmp 0x422244
lea eax, [ebp - 0x428]
mov ecx, 0x40b548
push eax
lea edx, [ebp - 0x4bc]
call fcn.00425d21
mov ebx, eax
test ebx, ebx
js 0x420fa3
cmp dword [ebp - 0x428], 0
je 0x421cbb
mov eax, dword [0x479b84]
test eax, eax
je 0x422137
cmp eax, 0xffffffff
jne 0x422139
xor eax, eax
push 0x40b590
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0xc
mov ecx, 0x80070652
jmp 0x42149d
mov eax, dword [0x479b84]
test eax, eax
je 0x422165
cmp eax, 0xffffffff
jne 0x422167
xor eax, eax
push dword [ebp - 0x43c]
push 0x40bd98
push dword [0x47c110]
push eax
call fcn.0041704b
mov ecx, dword [ebp - 0x47c]
lea eax, [ebp - 0x434]
and dword [ebp - 0x434], 0
add esp, 0x10
push eax
push dword [ebp - 0x43c]
call fcn.00424f66
mov ecx, eax
mov eax, dword [0x479b84]
test ecx, ecx
js 0x42221e
cmp dword [ebp - 0x434], 0
je 0x422205
test eax, eax
je 0x4221bd
cmp eax, 0xffffffff
jne 0x4221bf
xor eax, eax
push edi
push 0x40bdf0
push dword [0x47c110]
push eax
call fcn.0041704b
mov ecx, dword [ebp - 0x47c]
add esp, 0x10
push edi
call fcn.00425001
test eax, eax
jns 0x422244
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x4221f3
cmp ecx, 0xffffffff
jne 0x4221f5
xor ecx, ecx
push eax
push edi
push 0x40be48
push dword [0x47c110]
push ecx
jmp 0x42223c
test eax, eax
je 0x42220e
cmp eax, 0xffffffff
jne 0x422210
xor eax, eax
push edi
push dword [ebp - 0x43c]
push 0x40bec0
jmp 0x422235
test eax, eax
je 0x422227
cmp eax, 0xffffffff
jne 0x422229
xor eax, eax
push ecx
push dword [ebp - 0x43c]
push 0x40bf58
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x14
mov eax, dword [esi]
lea ecx, [ebp - 0x4a8]
push ecx
lea ecx, [ebp - 0x474]
push ecx
mov edi, dword [eax + 8]
mov ecx, edi
call dword [0x47d838]
mov ecx, esi
call edi
mov ebx, eax
test ebx, ebx
js 0x420fa3
cmp dword [ebp - 0x458], 0
jne 0x4222ce
mov ecx, dword [ebp - 0x460]
call fcn.0042ba2b
test eax, eax
je 0x4222ce
mov eax, dword [0x479b84]
test eax, eax
je 0x422293
cmp eax, 0xffffffff
jne 0x422295
xor eax, eax
push dword [ebp - 0x480]
push dword [ebp - 0x460]
push 0x40bfd0
push dword [0x47c110]
push eax
call fcn.0041704b
mov edx, dword [ebp - 0x480]
add esp, 0x14
mov ecx, dword [ebp - 0x460]
call fcn.0042d3c9
test eax, eax
je 0x421701
lea ecx, [ebp - 0x488]
call fcn.00424486
push ecx
lea ecx, [ebp - 0x440]
call fcn.00416976
push ecx
lea ecx, [ebp - 0x4b0]
call fcn.00416976
push ecx
lea ecx, [ebp - 0x4ac]
call fcn.00416976
mov ecx, dword [ebp - 0x42c]
xor eax, eax
inc eax
mov dword [ebp - 0x45c], eax
cmp dword [ecx + 0x1c], 0
je 0x4223eb
mov eax, dword [0x479b84]
test eax, eax
je 0x422324
cmp eax, 0xffffffff
jne 0x422326
xor eax, eax
push 0x40c038
push dword [0x47c110]
push eax
call fcn.0041704b
xor eax, eax
add esp, 8
inc eax
mov edx, 0x406d9c
mov dword [ebp - 0x428], eax
lea eax, [ebp - 0x430]
push eax
push 0x40c078
call fcn.0042813f
test eax, eax
js 0x4223b4
mov eax, dword [ebp - 0x430]
xor ecx, ecx
test eax, eax
mov edx, 0x407090
sete cl
mov dword [ebp - 0x428], ecx
test eax, eax
je 0x42237e
mov edx, 0x40709c
test ecx, ecx
mov ecx, 0x40c098
jne 0x42238c
mov ecx, 0x40c0b0
mov eax, dword [0x479b84]
test eax, eax
je 0x42239a
cmp eax, 0xffffffff
jne 0x42239c
xor eax, eax
push edx
push ecx
push 0x40c0c0
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x14
jmp 0x4223dd
mov eax, dword [0x479b84]
test eax, eax
je 0x4223c2
cmp eax, 0xffffffff
jne 0x4223c4
xor eax, eax
push 0x407090
push 0x40c140
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
mov eax, dword [ebp - 0x45c]
mov ecx, dword [ebp - 0x428]
jmp 0x4223f3
xor ecx, ecx
mov dword [ebp - 0x428], ecx
test eax, eax
je 0x422a82
mov esi, dword [ebp - 0x498]
mov edi, dword [ebp - 0x494]
test eax, eax
jne 0x422413
test ecx, ecx
je 0x42269f
test ecx, ecx
je 0x422561
mov eax, dword [ebp - 0x42c]
lea edx, [ebp - 0x430]
mov ecx, dword [eax + 0x1c]
call fcn.00426bf6
mov ebx, eax
test ebx, ebx
js 0x422a75
cmp dword [ebp - 0x430], 0
je 0x42252f
mov ecx, esi
call fcn.0042ba2b
test eax, eax
je 0x422485
mov eax, dword [0x479b84]
test eax, eax
je 0x42245f
cmp eax, 0xffffffff
jne 0x422461
xor eax, eax
push esi
push 0x40c1f0
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
mov ecx, esi
call fcn.0042d00f
test eax, eax
je 0x422a66
mov eax, dword [0x479b84]
test eax, eax
je 0x422493
cmp eax, 0xffffffff
jne 0x422495
xor eax, eax
push esi
push 0x40c248
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
mov ecx, esi
call fcn.004269bd
mov ebx, eax
test ebx, ebx
js 0x422a75
mov eax, dword [0x479b84]
test eax, eax
je 0x4224c9
cmp eax, 0xffffffff
jne 0x4224cb
xor eax, eax
mov ebx, dword [ebp - 0x42c]
push esi
push dword [ebx + 0x1c]
push 0x40c298
push dword [0x47c110]
push eax
call fcn.0041704b
mov ecx, dword [ebx + 0x1c]
add esp, 0x14
mov edx, esi
call fcn.00420a52
mov ebx, eax
test ebx, ebx
js 0x422a75
call fcn.004247a4
mov ebx, eax
test ebx, ebx
js 0x422a75
push 1
push 0x40c078
call fcn.004246bc
mov ebx, eax
test ebx, ebx
js 0x422a75
xor eax, eax
mov dword [ebp - 0x428], eax
jmp 0x422652
mov eax, dword [0x479b84]
test eax, eax
je 0x42253d
cmp eax, 0xffffffff
jne 0x42253f
xor eax, eax
mov ecx, dword [ebp - 0x42c]
push dword [ecx + 0x1c]
push 0x40c304
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
jmp 0x422652
mov ecx, edi
call fcn.0042ba2b
test eax, eax
je 0x422652
mov ecx, esi
call fcn.0042ba2b
test eax, eax
je 0x4225af
mov eax, dword [0x479b84]
test eax, eax
je 0x422589
cmp eax, 0xffffffff
jne 0x42258b
xor eax, eax
push esi
push 0x40c1f0
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
mov ecx, esi
call fcn.0042d00f
test eax, eax
je 0x422a66
mov eax, dword [0x479b84]
test eax, eax
je 0x4225bd
cmp eax, 0xffffffff
jne 0x4225bf
xor eax, eax
push esi
push 0x40c248
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
mov ecx, esi
call fcn.004269bd
mov ebx, eax
test ebx, ebx
js 0x422a75
mov eax, dword [0x479b84]
test eax, eax
je 0x4225f3
cmp eax, 0xffffffff
jne 0x4225f5
xor eax, eax
push esi
push edi
push 0x40c298
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x14
mov edx, esi
mov ecx, edi
call fcn.00420a52
mov ebx, eax
test ebx, ebx
js 0x422a75
mov eax, dword [0x479b84]
test eax, eax
je 0x42262c
cmp eax, 0xffffffff
jne 0x42262e
xor eax, eax
push edi
push 0x40c330
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x10
mov ecx, edi
call fcn.0042d00f
test eax, eax
je 0x422a66
mov ecx, esi
call fcn.0042ba2b
test eax, eax
je 0x42269f
mov eax, dword [0x479b84]
test eax, eax
je 0x42266b
cmp eax, 0xffffffff
jne 0x42266d
xor eax, eax
push dword [ebp - 0x444]
push esi
push 0x40c398
push dword [0x47c110]
push eax
call fcn.0041704b
mov edx, dword [ebp - 0x444]
add esp, 0x14
mov ecx, esi
call fcn.00420c45
mov ebx, eax
test ebx, ebx
js 0x422a75
and dword [ebp - 0x45c], 0
push ecx
lea ecx, [ebp - 0x44c]
call fcn.00416ab4
mov edx, dword [ebp - 0x4a8]
lea eax, [ebp - 0x44c]
mov ecx, dword [ebp - 0x42c]
push eax
call fcn.004202d5
mov ebx, eax
test ebx, ebx
js 0x422a75
push ecx
lea ecx, [ebp - 0x470]
call fcn.00416ab4
mov eax, dword [ebp - 0x424]
lea ecx, [ebp - 0x470]
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x47d838]
mov ecx, dword [ebp - 0x424]
call ebx
mov ebx, eax
test ebx, ebx
js 0x422a75
push dword [ebp - 0x470]
lea eax, [ebp - 0x44c]
push dword [ebp - 0x44c]
push 0x40c3e8
push eax
call fcn.00416afb
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x422a75
call fcn.004247a4
mov ebx, eax
test ebx, ebx
js 0x422a75
push 0x4084a4
mov edx, 0x406d9c
call fcn.004246f3
mov ebx, eax
test ebx, ebx
js 0x422a75
mov edx, 0x406d9c
call fcn.004261d6
mov ebx, eax
test ebx, ebx
js 0x422a75
mov eax, dword [0x479b84]
test eax, eax
je 0x422780
cmp eax, 0xffffffff
jne 0x422782
xor eax, eax
mov ebx, dword [ebp - 0x42c]
push dword [ebx + 0x20]
push dword [ebp - 0x44c]
push dword [ebp - 0x474]
push 0x40c3f8
push dword [0x47c110]
push eax
call fcn.0041704b
mov eax, dword [ebx + 0x4c]
add esp, 0x18
cmp eax, 4
je 0x4227f0
cmp eax, 1
je 0x4227f0
cmp eax, 8
je 0x4227f0
cmp eax, 2
je 0x4227f0
mov eax, dword [ebp - 0x444]
mov edx, 0xea60
mov dword [ebp - 0x468], eax
mov ecx, 0x384
lea eax, [ebp - 0x434]
push eax
call fcn.004299d2
mov ebx, eax
test ebx, ebx
js 0x422a75
jmp 0x4227fe
and dword [ebp - 0x468], 0
or dword [ebp - 0x434], 0xffffffff
push 0x408378
mov edx, 0x406d9c
call fcn.004246f3
mov ebx, eax
test ebx, ebx
js 0x422a75
mov edx, 0x406d9c
call fcn.004261d6
mov ebx, eax
test ebx, ebx
js 0x422a75
mov edx, dword [ebp - 0x44c]
lea eax, [ebp - 0x45c]
mov ecx, dword [ebp - 0x474]
push eax
mov eax, dword [ebp - 0x42c]
push dword [ebp - 0x434]
mov dword [ebp - 0x450], 1
push dword [eax + 0x10]
push dword [eax + 0x20]
push dword [ebp - 0x468]
call fcn.0041ddb3
mov ebx, eax
cmp ebx, 0x40010004
jne 0x4228e5
push ecx
lea eax, [ebp - 0x438]
mov edx, 0x406d9c
push eax
push 0x4084a4
call fcn.00427da7
test eax, eax
js 0x4228b5
cmp dword [ebp - 0x438], 0
je 0x4228b5
mov eax, dword [0x479b84]
mov edx, dword [0x47c110]
test eax, eax
je 0x4228a7
cmp eax, 0xffffffff
jne 0x4228a9
xor eax, eax
mov ebx, 0xc1900109
mov ecx, 0x40c478
jmp 0x4228d5
mov eax, dword [0x479b84]
mov edx, dword [0x47c110]
test eax, eax
je 0x4228c9
cmp eax, 0xffffffff
jne 0x4228cb
xor eax, eax
mov ebx, 0xc1900106
mov ecx, 0x40c500
push ecx
push edx
push eax
call fcn.0041704b
add esp, 0xc
jmp 0x4229ad
test ebx, ebx
js 0x4229ad
push ecx
lea eax, [ebp - 0x468]
mov edx, 0x406d9c
push eax
push 0x408378
call fcn.0042813f
test eax, eax
jns 0x4229ad
push ecx
lea eax, [ebp - 0x438]
mov edx, 0x406d9c
push eax
push 0x4084a4
call fcn.00427da7
test eax, eax
js 0x422959
cmp dword [ebp - 0x438], 0
je 0x422959
mov eax, dword [0x479b84]
test eax, eax
je 0x42293e
cmp eax, 0xffffffff
jne 0x422940
xor eax, eax
push ebx
push 0x40c588
push dword [0x47c110]
push eax
call fcn.0041704b
mov ebx, 0xc1900109
jmp 0x4229aa
mov eax, dword [0x479b84]
cmp ebx, 1
jne 0x422988
test eax, eax
je 0x42296c
cmp eax, 0xffffffff
jne 0x42296e
xor eax, eax
push 1
push 0x40c620
push dword [0x47c110]
push eax
call fcn.0041704b
mov ebx, 0xc1900106
jmp 0x4229aa
test eax, eax
je 0x422991
cmp eax, 0xffffffff
jne 0x422993
xor eax, eax
push ebx
push 0x40c6c0
push dword [0x47c110]
push eax
call fcn.0041704b
mov ebx, 0xc190011f
add esp, 0x10
mov eax, dword [0x479b84]
test eax, eax
je 0x4229bb
cmp eax, 0xffffffff
jne 0x4229bd
xor eax, eax
push ebx
push 0x40c758
push dword [0x47c110]
push eax
call fcn.0041704b
mov eax, dword [ebp - 0x42c]
add esp, 0x10
cmp dword [eax + 0x4c], 7
jne 0x422a19
mov ecx, dword [ebp - 0x49c]
call fcn.0041ea8e
test eax, eax
jns 0x422a13
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x4229fc
cmp ecx, 0xffffffff
jne 0x4229fe
xor ecx, ecx
push eax
push 0x40c7a8
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
mov eax, dword [ebp - 0x42c]
mov edx, dword [eax + 0x50]
mov ecx, dword [ebp - 0x454]
call fcn.0041f70b
test eax, eax
jns 0x422a51
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x422a3a
cmp ecx, 0xffffffff
jne 0x422a3c
xor ecx, ecx
push eax
push 0x40ba28
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x10
mov eax, dword [ebp - 0x45c]
test eax, eax
je 0x422a7c
mov ecx, dword [ebp - 0x428]
jmp 0x422407
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.0042754e
mov ebx, eax
mov ecx, ebx
call fcn.00427566
mov esi, dword [ebp - 0x424]
mov eax, dword [ebp - 0x42c]
mov edx, 0x40c814
cmp dword [eax + 0x4c], 6
jne 0x422ad1
mov edi, dword [ebp - 0x450]
test edi, edi
jne 0x422b0f
mov edi, 0x80070005
cmp ebx, edi
jne 0x422b09
mov eax, dword [0x479b84]
test eax, eax
je 0x422ab4
cmp eax, 0xffffffff
jne 0x422ab6
xor eax, eax
mov ebx, 0xc19001e9
push ebx
push edi
push edx
push 0x40c828
push dword [0x47c110]
push eax
call fcn.0041704b
jmp 0x422b06
mov eax, 0xc19001e9
cmp ebx, eax
jne 0x422b09
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x422ae9
cmp ecx, 0xffffffff
jne 0x422aeb
xor ecx, ecx
mov edi, 0x80070005
push edi
push eax
push edx
push 0x40c898
push dword [0x47c110]
push ecx
call fcn.0041704b
mov ebx, edi
add esp, 0x18
mov edi, dword [ebp - 0x450]
cmp dword [ebp - 0x46c], 0
je 0x422bb2
call fcn.004247a4
mov ecx, eax
test ecx, ecx
js 0x422b88
push ebx
push 0x40ac64
call fcn.004246bc
mov ecx, eax
test ecx, ecx
js 0x422b6b
mov edx, 0x406d9c
call fcn.004261d6
test eax, eax
jns 0x422bb2
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x422b55
cmp ecx, 0xffffffff
jne 0x422b57
xor ecx, ecx
push eax
push 0x40c814
push 0x40c908
push dword [0x47c110]
push ecx
jmp 0x422baa
mov eax, dword [0x479b84]
test eax, eax
je 0x422b79
cmp eax, 0xffffffff
jne 0x422b7b
xor eax, eax
push ecx
push 0x40c814
push 0x40c978
jmp 0x422ba3
mov eax, dword [0x479b84]
test eax, eax
je 0x422b96
cmp eax, 0xffffffff
jne 0x422b98
xor eax, eax
push ecx
push 0x40c814
push 0x40c9e0
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x14
test ebx, ebx
jns 0x422c26
test esi, esi
je 0x422bfc
mov eax, dword [esi]
push ebx
push edi
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x47d838]
mov ecx, esi
call edi
test eax, eax
jns 0x422bfc
mov ecx, dword [0x479b84]
test ecx, ecx
je 0x422be0
cmp ecx, 0xffffffff
jne 0x422be2
xor ecx, ecx
push eax
push 0x40c814
push 0x40ca68
push dword [0x47c110]
push ecx
call fcn.0041704b
add esp, 0x14
mov eax, dword [0x479b84]
test eax, eax
je 0x422c0a
cmp eax, 0xffffffff
jne 0x422c0c
xor eax, eax
push ebx
push 0x40c814
push 0x406d68
push dword [0x47c110]
push eax
call fcn.0041704b
add esp, 0x14
cmp dword [ebp - 0x4b4], 0
je 0x422c3e
push 0x407934
mov edx, 0x406d9c
call fcn.004246f3
mov ecx, ebx
call fcn.0042757e
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 0x1d
call fcn.00416e5a
lea ecx, [ebp - 0x44c]
mov byte [ebp - 4], 0x1c
call fcn.00416e5a
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0x1b
call fcn.00416e5a
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 0x1a
call fcn.00416e5a
lea ecx, [ebp - 0x4a8]
mov byte [ebp - 4], 0x19
call fcn.00416e5a
lea ecx, [ebp - 0x43c]
mov byte [ebp - 4], 0x18
call fcn.00416e5a
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 0x17
call fcn.00416ae4
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 0x16
call fcn.00416ae4
lea ecx, [ebp - 0x4ac]
mov byte [ebp - 4], 0x15
call fcn.00416ae4
lea ecx, [ebp - 0x4b0]
mov byte [ebp - 4], 0x14
call fcn.00416ae4
lea ecx, [ebp - 0x4bc]
mov byte [ebp - 4], 0x13
call fcn.00416ae4
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 4], 0x12
call fcn.00416ae4
lea ecx, [ebp - 0x4c0]
mov byte [ebp - 4], 0x11
call fcn.00416ae4
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 0x10
call fcn.00422e25
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0xf
call fcn.00416dd8
lea ecx, [ebp - 0x4cc]
mov byte [ebp - 4], 0x25
call fcn.00424486
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 0xd
call fcn.00416dd8
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 0xc
call fcn.00416e5a
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 0xb
call fcn.00416e5a
lea ecx, [ebp - 0x460]
mov byte [ebp - 4], 0xa
call fcn.00416e5a
lea ecx, [ebp - 0x494]
mov byte [ebp - 4], 9
call fcn.00416e5a
lea ecx, [ebp - 0x498]
mov byte [ebp - 4], 8
call fcn.00416e5a
lea ecx, [ebp - 0x49c]
mov byte [ebp - 4], 7
call fcn.00416e5a
lea ecx, [ebp - 0x444]
mov byte [ebp - 4], 6
call fcn.00416e5a
lea ecx, [ebp - 0x454]
mov byte [ebp - 4], 5
call fcn.00416e5a
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 4
call fcn.00416e5a
lea ecx, [ebp - 0x4a4]
mov byte [ebp - 4], 3
call fcn.00416e5a
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 2
call fcn.00416e5a
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 1
call fcn.00416e5a
lea ecx, [ebp - 0x4c4]
mov byte [ebp - 4], 0
call fcn.00416e5a
lea ecx, [ebp - 0x448]
mov dword [ebp - 4], 0x26
call fcn.0041702b
or dword [ebp - 4], 0xffffffff
mov eax, ebx
call fcn.00472e69
ret