Function at 0x100446fc
Capabilities:
Create directory
Get disk information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10083223
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x230
push ebx
mov dword [esp + 0x58], edx
xor ebx, ebx
mov dword [esp + 0x28], 0xa53d06ce
mov byte [esp + 7], bl
push esi
push edi
mov dword [esp + 0x64], ecx
cmp byte [esp + 0xf], bl
je 0x10044743
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x1004475e
push ebx
push ebx
push 0xb83
push ebx
push 1
push ebx
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
push 2
or edi, 0xffffffff
lea ecx, [esp + 0xec]
mov dword [esp + 0x14], edi
pop eax
mov dword [esp + 0x40], 0xd59e57ad
mov dword [esp + 0x20], 6
mov dword [esp + 0x1c], eax
push eax
call fcn.10009504
mov dword [esp + 0x244], ebx
mov dword [esp + 0x48], edi
push 4
mov dword [esp + 0x2c], 0x766298a2
mov dword [esp + 0x14], ebx
pop esi
jmp 0x100447b8
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1e4], 0x290be443
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100447a5
mov dword [esp + 0x10], ebx
jmp 0x100447da
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xe8]
mov dword [eax + ecx*4], 0xc3a0b8ee
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x100447c4
mov eax, dword [esp + 0xe8]
dec dword [eax]
mov dword [esp + 0x10], ebx
jmp 0x10044a2d
mov dword [esp + 0x18], 0xb256
mov dword [esp + 0x14], 0xcff2fd6b
mov dword [esp + 0x3c], 0xfffc
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x1c], ebx
jl 0x1004488d
push 3
lea ecx, [esp + 0x150]
call fcn.10009504
mov dword [esp + 0x34], 0xd0e834ab
mov dword [esp + 0x20], ebx
jmp 0x1004484b
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14c]
mov dword [eax + ecx*4], 0xd87263b0
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x10044835
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xe8]
cmp dword [eax + ecx*4], ebx
jne 0x10044873
mov eax, dword [esp + 0x14c]
mov dword [eax], 0xffff
mov dword [esp + 0x34], 1
lea ecx, [esp + 0x14c]
call fcn.100096ee
dec dword [esp + 0x1c]
jns 0x10044819
mov dword [esp + 0x20], 0x14
jmp 0x10044a1e
mov dword [esp + 0x38], 1
mov dword [esp + 0x2c], 0x1afd208d
mov dword [esp + 0x24], 0x5f713ec2
mov dword [esp + 0x34], 0xcdaf70c7
mov dword [esp + 0x2c], ebx
jmp 0x100448d3
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x1f4], 0xaeeb1cb6
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 3
jl 0x100448c0
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
neg eax
cmp eax, dword [esp + 0x10]
jl 0x100449a1
push 2
lea ecx, [esp + 0x17c]
call fcn.10009504
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], ebx
jmp 0x10044948
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x178]
mov dword [eax + ecx*4], 0xc458af32
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 2
jl 0x10044932
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp eax, ecx
setle dl
mov dword [esp + 0x14], edx
cmp dword [esp + 0x14], ebx
je 0x10044987
mov eax, dword [esp + 0x1f0]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x178]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], eax
call fcn.100096ee
jmp 0x10044a1a
mov dword [esp + 0x14], ebx
jmp 0x100449b6
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x168], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100449a7
inc dword [esp + 0x24]
cmp dword [esp + 0x3c], ebx
jne 0x100449ce
mov eax, dword [esp + 0x168]
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x28]
cmp dword [edx + 4], eax
setl cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, 0xffff0cfd
mov eax, dword [esp + 0x2c]
cmp eax, 0x2784
setge dl
mov dword [esp + 0x1fc], edx
sub ecx, edx
mov dword [esp + 0x1e8], ecx
mov eax, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x34], eax
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffff5
jne 0x1004489a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1b
jl 0x100447f3
lea ecx, [esp + 0xe8]
mov dword [esp + 0x244], edi
call fcn.100096ee
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x104]
mov dword [esp + 0x34], 0xfffffffa
mov dword [esp + 0x48], 0xfffffffd
push 2
call fcn.10009504
push 2
lea ecx, [esp + 0x88]
mov dword [esp + 0x248], 1
call fcn.10009504
mov dword [esp + 0x14], ebx
push 2
pop edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], 0x942796a4
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], ebx
jmp 0x10044ab9
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10044aa7
mov dword [esp + 0x18], ebx
jmp 0x10044ad7
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10044ac5
mov dword [esp + 0x18], ebx
jmp 0x10044af6
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x128], 3
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10044ae3
mov eax, dword [esp + 0x84]
mov dword [eax], 1
mov eax, dword [esp + 0x104]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], 0x9c309ab8
mov dword [esp + 0x40], 0xd8131dda
mov dword [esp + 0x14], ebx
jmp 0x10044b3d
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x210], 0xd228d5fe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10044b2a
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x104]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [esi + ecx*4], eax
mov eax, dword [edx]
mov edi, dword [esi + eax*4]
test edi, edi
je 0x10044b6f
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [edx]
push 0
mov ecx, dword [eax + 4]
xor eax, eax
add ecx, 0x5169ff4c
imul ecx, edi
cmp edi, ecx
setle al
xor ecx, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
cmp eax, dword [esi + edx*4]
setne cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x88]
cmp dword [eax], ecx
mov eax, dword [esp + 0x3c]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
cmp eax, ecx
mov eax, dword [esp + 0x88]
setge dl
xor ecx, ecx
cmp edx, dword [eax]
mov eax, dword [esp + 0x44]
setne cl
neg ecx
pop ecx
setns cl
xor edx, edx
cmp ecx, eax
push 4
setg dl
sub edx, dword [esp + 0x28]
neg edx
pop esi
sbb edx, edx
inc edx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x84]
add ecx, 0x7911
imul ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x84]
dec dword [eax]
jns 0x10044b14
inc dword [esp + 0x128]
lea ecx, [esp + 0x84]
call fcn.100096ee
or dword [esp + 0x244], 0xffffffff
lea ecx, [esp + 0x104]
call fcn.100096ee
xor ecx, ecx
mov dword [esp + 0x14], ebx
inc ecx
jmp 0x10044c6b
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xf4], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10044c5c
inc dword [esp + 0x1c]
mov dword [esp + 0x1c], 0xa4d1b40e
mov dword [esp + 0x24], 0x1d4595a2
push 4
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], ebx
pop edi
jmp 0x10044ca5
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xb0], 0xfffffffa
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x10044c92
push 3
mov dword [esp + 0x1c], ebx
pop esi
jmp 0x10044cc7
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1c8], 0x3ffd03b1
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x10044cb4
mov dword [esp + 0x18], ebx
jmp 0x10044ce6
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x170], 0xcbb40284
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x10044cd3
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0xb4], ebx
je 0x10044d0c
cmp dword [esp + 0xb0], 0x9a20
mov eax, ecx
jl 0x10044d0e
mov eax, ebx
add eax, 0x3c59c645
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
sub eax, 0x96d4
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
imul eax, dword [esp + 0xb8]
test eax, eax
setle cl
xor edx, edx
mov dword [esp + 0x1c8], ecx
mov eax, dword [esp + 0xb8]
cmp ecx, eax
mov eax, dword [esp + 0x24]
setne dl
sub edx, eax
sub edx, 6
neg edx
sbb edx, edx
add edx, 0xf28bc335
neg edx
sbb edx, edx
inc edx
imul edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x24]
jge 0x10044d7f
cmp dword [esp + 0xb8], ebx
je 0x10044d7f
xor ecx, ecx
inc ecx
jmp 0x10044d81
mov ecx, ebx
mov eax, dword [esp + 0xb4]
sub ecx, eax
cmp dword [esp + 0xb8], ecx
je 0x10044d9a
mov eax, dword [esp + 0x1c8]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov eax, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
xor edx, edx
add ecx, 0x10000
cmp ecx, 0x550e8f7c
setle dl
sub edx, eax
mov dword [esp + 0x170], edx
mov dword [esp + 0x1c], 0x10
jmp 0x10044dee
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10044dea
push 0xa3d
push ebx
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x15
jle 0x10044dd3
mov dword [esp + 0x1c], 0x1a
cmp dword [esp + 0x1c], 8
jle 0x100455e2
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
or esi, 0xffffffff
push dword [esp + 0x74]
movdqa xmm0, xmmword [0x10008240]
lea eax, [esp + 0x1e8]
push eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0xc8], ebx
push eax
push ebx
lea ecx, [esp + 0xd0]
mov dword [esp + 0xd4], ebx
movdqu xmmword [esp + 0x1e4], xmm0
mov dword [esp + 0xd8], ebx
call fcn.10009afb
mov dword [esp + 0x244], 2
xor ecx, ecx
mov dword [esp + 0x38], 0x1ac7eb23
inc ecx
mov dword [esp + 0x30], 0x68cd546
mov dword [esp + 0x30], ecx
mov dword [esp + 0x30], 0xc328129e
mov dword [esp + 0x14], ebx
jmp 0x10044e98
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x50], 0xf1124f01
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10044e88
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10044ec3
push 0x12c7
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [esp + 0x50], ebx
jmp 0x10044f20
mov dword [esp + 0x30], 0x32fd2d1a
mov eax, 0x663c10b4
mov dword [esp + 0x30], 0xc5a74d4b
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x50]
neg eax
je 0x10044f06
mov eax, dword [esp + 0x50]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10044f1c
push 0x1d1e
call dword [sym.imp.USER32.dll_BeginDeferWindowPos]
inc dword [esp + 0x50]
cmp dword [esp + 0x50], 0xb
jge 0x10044ec9
mov dword [esp + 0x40], 0x86f80366
mov eax, 0x647c2c9e
mov dword [esp + 0x30], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x10], ebx
jmp 0x10044fc3
mov dword [esp + 0x28], 0x1d8b
mov dword [esp + 0x3c], 1
mov dword [esp + 0x14], ebx
jmp 0x10044f83
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x138], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10044f74
cmp dword [esp + 0x28], ebx
jne 0x10044f94
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x13c]
cmp eax, ecx
setle dl
test edx, edx
jg 0x10044fb8
cmp dword [esp + 0x138], ebx
je 0x10044fb8
xor eax, eax
inc eax
jmp 0x10044fba
mov eax, ebx
inc eax
mov dword [esp + 0x3c], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 8
jl 0x10044f5e
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10044fdf
push 1
push 0x84b
push ebx
call edi
mov dword [esp + 0x10], esi
mov eax, 0x647c2c9e
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x10], ebx
jmp 0x1004506f
mov dword [esp + 0x28], 0x1d8b
mov dword [esp + 0x3c], 1
mov dword [esp + 0x14], ebx
jmp 0x1004502f
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x130], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10045020
cmp dword [esp + 0x28], ebx
jne 0x10045040
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x134]
cmp eax, ecx
setle dl
test edx, edx
jg 0x10045064
cmp dword [esp + 0x130], ebx
je 0x10045064
xor eax, eax
inc eax
jmp 0x10045066
mov eax, ebx
inc eax
mov dword [esp + 0x3c], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 8
jl 0x1004500a
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1004508b
push 1
push 0x84b
push ebx
call edi
mov dword [esp + 0x14], ebx
jmp 0x100450a4
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x158], 0x72ba29f5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x10045091
mov esi, dword [esp + 0xc0]
or edi, 0xffffffff
mov dword [esi + 8], ebx
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
push 3
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ebx
pop edx
jmp 0x100450d8
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x68], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x100450cc
push 2
pop ecx
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], ebx
jl 0x1004513f
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x68], ebx
je 0x10045121
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x68]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x68]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x68]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
dec dword [esp + 0x10]
jns 0x100450eb
mov dword [esp + 0x18], ebx
jmp 0x10045155
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x68], 0x65ab4d25
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10045145
push ecx
lea ecx, [esp + 0x188]
call fcn.10009504
mov byte [esp + 0x244], 3
xor ecx, ecx
mov dword [esp + 0x20], 0xe33a79cc
inc ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], 0xfffffffc
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0xd35da2a0
mov dword [esp + 0x10], 0xa631
push 5
pop eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x14], ebx
jmp 0x100451d3
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x80], 0x5cc7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x100451c0
inc dword [esp + 0x10]
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 3
jg 0x100452b7
mov dword [esp + 0x24], 0xfffffff6
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x24], ebx
jne 0x10045212
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0xa4]
cmp eax, 0x77a1
jg 0x10045212
mov ecx, ebx
mov eax, dword [esp + 0x24]
imul eax, ecx
xor ecx, ecx
sub eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
cmp eax, 0x6085e071
mov eax, dword [esp + 0x24]
setg cl
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0x2301
mov ecx, dword [esp + 0xa4]
setg al
sub ecx, eax
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + eax*4 + 0xa0], ecx
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xa0], 0xe071a051
mov dword [esp + 0x28], 0x894ff545
mov dword [esp + 0x14], ebx
jmp 0x10045297
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x220], 0x3813bf58
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10045284
inc dword [esp + 0x80]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
push 1
pop ecx
jle 0x100451ec
mov dword [esp + 0x28], 0xe81de982
mov dword [esp + 0x28], 0x1b07fb07
push 2
mov dword [esp + 0x24], 0x949f4ffc
pop edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x3c], 0x552ded14
mov dword [esp + 0x10], ebx
jmp 0x100452f0
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x58], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x100452e4
mov dword [esp + 0x10], ebx
jmp 0x1004530f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xf8], 4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100452fc
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp edi, eax
sbb eax, eax
neg eax
sub eax, dword [esp + 0x5c]
cmp eax, 0x2152
jg 0x1004533f
mov eax, ecx
cmp dword [esp + 0x20], ebx
jne 0x10045341
mov eax, ebx
xor ecx, ecx
cmp eax, 0xfffffffe
mov eax, dword [esp + 0x58]
setne cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x58]
setle dl
add eax, 0xb99
mov dword [esp + 0x28], edx
xor edx, edx
cmp eax, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xf8]
cmp ecx, eax
setg dl
xor ecx, ecx
mov dword [esp + 0xf8], edx
mov eax, dword [esp + 0x58]
add eax, 0x81d6e6e
cmp eax, edx
setg cl
cmp ecx, 0x8fe4de5a
sbb eax, eax
xor ecx, ecx
neg eax
test eax, eax
mov eax, dword [esp + 0x58]
setg cl
imul eax, ecx
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], ebx
jne 0x100453ce
mov eax, dword [esp + 0xfc]
mov eax, dword [esp + 0x20]
add eax, 0x5f0e77da
je 0x100453e6
cmp dword [esp + 0x24], ebx
je 0x100453e6
xor edx, edx
inc edx
mov ecx, edx
jmp 0x100453eb
xor edx, edx
mov ecx, ebx
inc edx
xor eax, eax
cmp ecx, 0xd69b
mov ecx, dword [esp + 0x20]
setne al
sub ecx, eax
neg ecx
push 3
sbb ecx, ecx
inc ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x2c], 0x7689351f
mov dword [esp + 0x2c], edi
mov dword [esp + 0x2c], 0xfffffffd
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x1004543d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x22c], 0x7a73d2d6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1004542a
mov dword [esp + 0x10], ebx
jmp 0x10045458
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1a0], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x10045449
inc dword [esp + 0x1a8]
mov dword [esp + 0x14], ebx
jmp 0x1004547d
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x184]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1004546b
cmp dword [esp + 0x1c], ebx
jne 0x100454c7
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x160]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x160]
mov eax, dword [esp + 0x160]
mov dword [esp + 0x164], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], ebx
jmp 0x100454eb
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x78], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100454df
mov dword [esp + 0x78], ebx
jmp 0x1004551e
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1004551a
push 0x1807
push 0x1009
push ebx
push 0x680
push ebx
call dword [sym.imp.USER32.dll_GetMenuStringW]
dec dword [esp + 0x78]
cmp dword [esp + 0x78], 0xfffffff9
jg 0x100454f8
mov dword [esp + 0x20], 0xfffffffa
jmp 0x10045589
mov dword [esp + 0x74], 0xfeddd8d7
mov dword [esp + 0x2c], 0x14
jmp 0x10045571
mov dword [esp + 0x14], 0x10
jmp 0x10045566
cmp dword [esp + 0x2c], 0xfffffffa
je 0x10045541
lea eax, [esp + 0x74]
push ebx
push eax
call fcn.10048b97
inc dword [esp + 0x28]
pop ecx
pop ecx
cmp dword [esp + 0x20], 7
jl 0x1004552f
lea ecx, [esp + 0x184]
mov byte [esp + 0x244], 2
call fcn.100096ee
inc dword [esi + 8]
cmp dword [esi + 8], 0xc
jne 0x100450b8
or esi, 0xffffffff
lea ecx, [esp + 0xc0]
mov dword [esp + 0x244], esi
call fcn.100096ee
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 8
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
jg 0x10044e11
push 3
pop esi
push 4
pop edi
mov dword [esp + 0x10], 0xfffffffa
lea ecx, [esp + 0x11c]
or eax, 0xffffffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], 0xa6dd7547
mov dword [esp + 0x24], eax
push 2
call fcn.10009504
mov dword [esp + 0x10], ebx
jmp 0x1004562d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x44], 0xc116e074
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1004561d
mov dword [esp + 0x10], ebx
jmp 0x10045650
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x11c]
mov dword [eax + ecx*4], 2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1004563a
mov dword [esp + 0x10], ebx
jmp 0x10045823
mov dword [esp + 0x18], 0xfffffff7
mov dword [esp + 0x18], edi
jmp 0x100457f7
mov dword [esp + 0x28], 0xd77cccae
mov dword [esp + 0x48], 0xdb40437e
mov dword [esp + 0x14], ebx
jmp 0x1004569a
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x90], 1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10045687
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100456b2
push ebx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [esp + 0x98], 0xffffffe2
jmp 0x100457e5
mov dword [esp + 0x34], 0x23703acb
mov dword [esp + 0x30], 0x658d83f7
mov dword [esp + 0x38], 0xc46d
mov dword [esp + 0x14], ebx
jmp 0x100456f3
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1b0], 0x791f9e6a
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x100456e0
inc dword [esp + 0x34]
xor edx, edx
mov eax, dword [esp + 0x18]
test eax, eax
setns dl
xor ecx, ecx
mov dword [esp + 0x1b4], edx
mov eax, dword [esp + 0x10]
cmp edx, eax
setg cl
cmp ecx, dword [esp + 0x10]
jge 0x1004572c
cmp dword [esp + 0x44], ebx
je 0x1004572c
xor eax, eax
inc eax
jmp 0x1004572e
mov eax, ebx
mov dword [esp + 0x44], eax
xor ecx, ecx
mov eax, dword [esp + 0x98]
mov eax, dword [esp + 0x18]
cmp eax, 1
setge cl
xor eax, eax
cmp ecx, 1
setg al
cmp eax, dword [esp + 0x30]
je 0x10045757
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x10], ebx
je 0x10045761
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x98]
cmp eax, ecx
mov ecx, dword [esp + 0x1c]
setne dl
imul ecx, edx
sub ecx, dword [esp + 0x48]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
imul ecx, dword [esp + 0x98]
cmp ecx, 9
setg al
xor ecx, ecx
cmp eax, 0xc253
setle cl
cmp ecx, dword [esp + 0x48]
jl 0x100457cc
mov dword [esp + 0x34], 0x6ffea1e1
dec dword [esp + 0x34]
jmp 0x100457de
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100457de
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc dword [esp + 0x98]
cmp dword [esp + 0x98], 9
je 0x100456c2
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe3
jne 0x10045671
mov dword [esp + 0x18], ebx
jmp 0x10045818
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x44], 0xfffffffb
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x10045808
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x16
je 0x10045660
mov eax, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
add eax, 0xffff706c
add ecx, eax
mov eax, dword [esp + 0x40]
cmp eax, ecx
mov eax, dword [esp + 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
add ecx, 0xc4a3
cmp ecx, 0xdce64f81
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x24]
setge cl
xor edx, edx
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
sub ecx, dword [esp + 0x44]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
cmp eax, 1
mov eax, dword [esp + 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [esp + 0x1c]
je 0x100458e8
cmp dword [esp + 0x10], ebx
je 0x100458e8
xor edx, edx
inc edx
jmp 0x100458ea
mov edx, ebx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x11c]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x44]
cmp eax, 1
setle cl
xor edx, edx
add ecx, 0xe90e
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x11c]
cmp dword [eax], ecx
lea ecx, [esp + 0x11c]
mov eax, dword [esp + 0x1c]
setge dl
imul eax, edx
mov dword [esp + 0x44], eax
call fcn.100096ee
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x10], ebx
jne 0x1004595a
xor al, al
jmp 0x10045ddb
mov dword [esp + 0x30], 0xfe387fb0
xor ecx, ecx
mov dword [esp + 0x34], 0xaa39ed0
inc ecx
mov dword [esp + 0x14], ebx
jmp 0x10045982
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1ac], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10045973
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1004599d
push ebx
call fcn.10046189
pop ecx
xor ecx, ecx
inc ecx
inc dword [esp + 0x34]
mov dword [esp + 0x30], 0x68cd546
mov dword [esp + 0x30], ecx
mov dword [esp + 0x30], 0xc328129e
mov dword [esp + 0x14], ebx
jmp 0x100459cb
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x4c], 0xf1124f01
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x100459bb
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x100459f6
push 0x12c7
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [esp + 0x4c], ebx
jmp 0x10045a53
mov dword [esp + 0x30], 0x32fd2d1a
mov eax, 0x663c10b4
mov dword [esp + 0x30], 0xc5a74d4b
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x4c]
neg eax
je 0x10045a39
mov eax, dword [esp + 0x4c]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10045a4f
push 0x1d1e
call dword [sym.imp.USER32.dll_BeginDeferWindowPos]
inc dword [esp + 0x4c]
cmp dword [esp + 0x4c], 0xb
jge 0x100459fc
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x140]
push 2
mov dword [eax], ebx
mov dword [esp + 0x18], 0x571177e8
call fcn.10009504
xor edx, edx
mov dword [esp + 0x14], ebx
inc edx
cmp dword [esp + 0x14], 2
jge 0x10045a98
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x140]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x14]
jmp 0x10045a7d
mov dword [esp + 0x14], ebx
jmp 0x10045b0b
mov dword [esp + 0x10], edx
mov dword [esp + 0x10], ebx
jmp 0x10045b01
mov dword [esp + 0x1c], 0x363f9e92
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], ebx
jl 0x10045ad8
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x140]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [esp + 0x1c]
jns 0x10045aba
xor edx, edx
inc edx
mov dword [esp + 0x1c], ebx
jmp 0x10045af7
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10045af3
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edx, edx
inc edx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jle 0x10045ade
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x10045aa8
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff3
jne 0x10045a9e
lea ecx, [esp + 0x140]
call fcn.100096ee
or eax, 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ebx
jmp 0x10045b3e
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x200], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10045b2f
cmp dword [esp + 0x10], ebx
jne 0x10045b58
cmp dword [esp + 0x10], 0x1d1fc
jg 0x10045b58
mov eax, ebx
jmp 0x10045b5b
xor eax, eax
inc eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x200], edx
mov ecx, dword [esp + 0x10]
imul ecx, eax
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp edx, ecx
setl al
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ebx
jmp 0x10045bbb
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x10045bb7
push 0x2ddb
push ebx
push 0xd01
call fcn.1004eaaa
add esp, 0xc
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xe
jne 0x10045b99
push 1
lea ecx, [esp + 0xd0]
call fcn.10009504
push esi
lea ecx, [esp + 0x114]
mov dword [esp + 0x248], edi
call fcn.10009504
xor edx, edx
inc edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], 0x97e7
mov dword [esp + 0x34], 0x2601c8d5
mov dword [esp + 0x10], ebx
jmp 0x10045c17
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 0x5baf43b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10045c01
mov dword [esp + 0x10], ebx
jmp 0x10045c35
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x110]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10045c23
mov edi, dword [esp + 0x110]
mov dword [edi + 8], ebx
mov ecx, dword [edi + 8]
mov eax, dword [esp + 0xcc]
mov eax, dword [eax + ecx*4]
dec eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xcc]
sub ecx, dword [eax]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x717f
setge al
cmp eax, 0xffff
jne 0x10045c89
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret