Function at 0x10031abd
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10064bac
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8
push esi
movzx eax, byte [ebp + 0x10]
test eax, eax
je 0x10031b3f
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x60], eax
lea eax, [ebp + 0x14]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
movzx eax, byte [eax]
test eax, eax
je 0x10031b0a
push 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10031b3a
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
movzx eax, byte [eax]
test eax, eax
je 0x10031b3a
push 0x71ec
push 0
call fcn.10031f43
pop ecx
pop ecx
jmp 0x10031f0d
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x7c], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
movzx eax, byte [eax]
test eax, eax
je 0x10031f05
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x10], 1
mov dword [ebp - 0xa0], 1
mov dword [ebp - 0x28], 0
jmp 0x10031b98
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 3
jge 0x10031bae
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x9c], 0x64a6847d
jmp 0x10031b91
mov dword [ebp - 0x10], 2
jmp 0x10031bbe
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jl 0x10031e90
mov dword [ebp - 0x84], 0x16cf
cmp dword [ebp - 0x84], 0xf94
jge 0x10031dc1
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x10081958
call fcn.10021f06
push dword [ebp - 0x18]
lea ecx, [ebp - 0x5c]
call fcn.10001f82
and dword [ebp - 4], 0
and dword [ebp - 0x24], 0
jmp 0x10031c0c
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jge 0x10031c2c
push dword [ebp - 0x24]
lea ecx, [ebp - 0x5c]
call fcn.10001ffb
push eax
mov ecx, 0x10081958
call fcn.10021f06
jmp 0x10031c05
mov eax, dword [ebp - 0x18]
inc eax
push eax
lea ecx, [ebp - 0x44]
call fcn.10001f82
mov byte [ebp - 4], 1
mov dword [ebp - 0x20], 1
jmp 0x10031c4d
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x18]
jge 0x10031c71
push dword [ebp - 0x20]
lea ecx, [ebp - 0x5c]
call fcn.10001ffb
push dword [eax]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
jmp 0x10031c46
and dword [ebp - 0x38], 0
jmp 0x10031c7e
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
mov ecx, dword [ebp - 0x38]
cmp ecx, dword [eax]
jge 0x10031ca1
push fcn.100244a0
mov ecx, 0x10081838
call fcn.100220c5
jmp 0x10031c77
push dword [ebp - 0x18]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
push dword [eax]
lea ecx, [ebp - 0x5c]
call fcn.10001ffb
push dword [eax]
mov ecx, 0x10081838
call fcn.100220d1
push dword [ebp - 0x18]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x14], eax
jmp 0x10031ce2
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jle 0x10031d9a
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
mov eax, dword [eax]
cmp eax, dword [ebp - 0x30]
jge 0x10031d2d
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
push dword [eax]
lea ecx, [ebp - 0x5c]
call fcn.10001ffb
push dword [eax]
mov edx, 0x1006dc40
mov ecx, 0x10081838
call fcn.100038af
mov ecx, eax
call fcn.100220d1
jmp 0x10031d95
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
mov eax, dword [eax]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x80], 0
je 0x10031d64
push fcn.100244a0
mov ecx, 0x10081838
call fcn.100220c5
jmp 0x10031d40
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
push dword [eax]
lea ecx, [ebp - 0x5c]
call fcn.10001ffb
push dword [eax]
mov ecx, 0x10081838
call fcn.100220d1
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.10001ffb
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
jmp 0x10031cdb
push fcn.100244a0
mov ecx, 0x10081838
call fcn.100220c5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x44]
call fcn.10001fdf
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.10001fdf
mov dword [ebp - 0xa4], 0x9e22401d
mov dword [ebp - 0x2c], 0
jmp 0x10031ddb
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 4
jge 0x10031df1
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0xb4], 8
jmp 0x10031dd4
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x9c], 1
jge 0x10031e07
mov dword [ebp - 0x4c], 1
jmp 0x10031e0b
and dword [ebp - 0x4c], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0xb4]
cmp dword [ebp - 0x4c], eax
jle 0x10031e29
cmp dword [ebp - 0x10], 0
jne 0x10031e29
and dword [ebp - 0x64], 0
jmp 0x10031e30
mov dword [ebp - 0x64], 1
mov eax, 0x4811
cmp eax, 0xf906
jne 0x10031e5f
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x9c], 0
je 0x10031e4b
jmp 0x10031e90
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x9c], 0
je 0x10031e5d
jmp 0x10031bb7
jmp 0x10031e8b
mov dword [ebp - 0x48], 0xffff
mov eax, dword [ebp - 0x48]
dec eax
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x19], 0
push 0
push 0x3e99
push 1
push 0x1d3
lea eax, [ebp - 0x19]
push eax
call fcn.10037a57
add esp, 0x14
jmp 0x10031bb7
mov dword [ebp - 0x10], 0xfffffff2
jmp 0x10031ea0
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffea
jge 0x10031ed8
mov byte [ebp - 0x1a], 0
push 0x37d3
push 0
push 0x3c60
lea eax, [ebp - 0x1a]
push eax
call fcn.10031f62
add esp, 0x10
mov byte [ebp - 0x1b], 0
movzx eax, byte [ebp - 0x1b]
test eax, eax
je 0x10031ed6
push 0
call fcn.100380cc
pop ecx
jmp 0x10031e99
mov ecx, dword [ebp - 0x68]
call fcn.1003079f
mov ecx, eax
mov eax, dword [ebp - 0x50]
cdq
mov esi, 0x3e8
idiv esi
add ecx, edx
mov eax, dword [ebp - 0x50]
cdq
mov esi, 0x3e8
idiv esi
add ecx, eax
mov eax, dword [ebp - 0x70]
mov dword [eax], ecx
jmp 0x10031f0d
push 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret