Function at 0x1008355e
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x380
push ebx
push esi
push edi
mov dword [ebp + 0x5c], ecx
push ecx
lea ecx, [ebp - 0x3c]
call fcn.10048516
mov edx, dword [ebp + 0x70]
xor edi, edi
push 2
mov dword [ebp + 0x34], edi
mov byte [ebp + 0x67], 0x2c
xor ecx, ecx
pop esi
jmp 0x100835b2
cmp cx, 0x2a
je 0x100835ba
mov eax, ecx
call fcn.10002df6
test al, al
jne 0x100835ba
cmp cx, 0x3b
je 0x100835a8
cmp cx, 0x3a
jne 0x100835ad
mov al, byte [edx]
mov byte [ebp + 0x67], al
add edx, esi
mov dword [ebp + 0x70], edx
mov cx, word [edx]
cmp cx, di
jne 0x1008358b
lea ecx, [ebp - 0x8c]
call fcn.100463df
lea eax, [ebp + 0x70]
push eax
call fcn.1003f9c4
lea eax, [ebp - 0x8c]
cdq
xor ebx, ebx
pop ecx
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0xc], esi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x10], edi
mov dword [ebp - 4], 0xfffffff8
mov dword [ebp - 0x14], edi
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x2c], edi
mov dword [ebp], edi
mov dword [ebp + 0x1c], edi
mov byte [ebp + 0x66], 0
inc ebx
mov esi, dword [ebp + 0x70]
mov ax, word [esi]
cmp ax, 0x2a
je 0x1008364b
cmp ax, 0x2f
je 0x1008364b
cmp ax, 0x2d
jne 0x100839c2
cmp ax, 0x2d
jne 0x10083675
cmp word [esi + 2], ax
jne 0x10083675
xor ecx, ecx
mov cx, word [esi + 4]
mov eax, ecx
call fcn.10002df6
test al, al
jne 0x100839af
cmp cx, di
je 0x100839af
push 2
lea eax, [ebp + 0x70]
push eax
push 0x100d2394
call fcn.100481d8
add esp, 0xc
test al, al
je 0x1008369a
mov eax, dword [ebp + 0x60]
and eax, 0xfffffffe
or eax, 6
jmp 0x1008378b
mov esi, dword [ebp + 0x70]
push 3
add esi, 2
push esi
push 0x100d2390
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100836c1
add dword [ebp + 0x70], 8
mov dword [ebp + 0x60], 6
jmp 0x100836d9
push 7
push esi
push str.delims:
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100836fc
add dword [ebp + 0x70], 0x10
or dword [ebp + 0x60], 0xa
push edi
push dword [ebp + 0x5c]
lea eax, [ebp + 0x70]
push eax
call fcn.1007445b
mov eax, dword [ebp + 0x70]
mov ax, word [eax]
add esp, 0xc
mov word [ebp + 0x34], ax
jmp 0x1008398b
push 0xffffffffffffffff
lea eax, [ebp + 0x70]
push eax
push 0x100cb458
call fcn.10048195
add esp, 0xc
test al, al
jne 0x100839a2
push 0xffffffffffffffff
lea eax, [ebp + 0x70]
push eax
push 0x100c8014
call fcn.10048195
add esp, 0xc
test al, al
jne 0x100839a2
push ebx
lea eax, [ebp + 0x70]
push eax
push 0x100d05ac
call fcn.100481d8
add esp, 0xc
test al, al
jne 0x10083999
push 2
pop esi
push esi
lea eax, [ebp + 0x70]
push eax
push 0x100d1a2c
call fcn.10048195
add esp, 0xc
test al, al
jne 0x10083999
push ebx
lea eax, [ebp + 0x70]
push eax
push 0x100d2384
call fcn.100481d8
add esp, 0xc
test al, al
je 0x10083793
mov eax, dword [ebp + 0x60]
and eax, 0xfffffffd
or eax, 0x11
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x60], eax
jmp 0x1008362f
push 3
lea eax, [ebp + 0x70]
push eax
push 0x100d2380
call fcn.10048195
add esp, 0xc
test al, al
je 0x100837b2
mov dword [ebp], ebx
jmp 0x1008362f
push 3
lea eax, [ebp + 0x70]
push eax
push 0x100cb534
call fcn.10048195
add esp, 0xc
test al, al
je 0x100837d1
mov dword [ebp + 0x10], ebx
jmp 0x1008362f
push 3
lea eax, [ebp + 0x70]
push eax
push 0x100d237c
call fcn.10048195
add esp, 0xc
test al, al
je 0x100837f0
mov dword [ebp + 0x14], ebx
jmp 0x1008362f
push 4
lea eax, [ebp + 0x70]
push eax
push str.qu
call fcn.10048195
add esp, 0xc
test al, al
je 0x1008380f
mov dword [ebp + 0x14], esi
jmp 0x1008362f
push 4
lea eax, [ebp + 0x70]
push eax
push str.off
call fcn.10048195
add esp, 0xc
test al, al
je 0x1008382e
mov dword [ebp + 0x2c], ebx
jmp 0x1008362f
push esi
lea eax, [ebp + 0x70]
push eax
push 0x100d2368
call fcn.10048195
add esp, 0xc
test al, al
je 0x1008384d
or dword [ebp + 0x4c], 0x10
jmp 0x1008362f
push 3
push dword [ebp + 0x70]
push 0x100d2364
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1008387f
or dword [ebp + 0x4c], 0x10
add dword [ebp + 0x70], 6
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.10053a89
pop ecx
pop ecx
jmp 0x1008362f
push 4
lea eax, [ebp + 0x70]
push eax
push str._O:N
call fcn.10048195
add esp, 0xc
test al, al
je 0x100838a2
mov dword [ebp + 0x48], 0x20
jmp 0x1008362f
push 5
lea eax, [ebp + 0x70]
push eax
push str._O:_N
call fcn.10048195
add esp, 0xc
test al, al
je 0x100838c5
mov dword [ebp + 0x48], 0x60
jmp 0x1008362f
push 4
lea eax, [ebp + 0x70]
push eax
push str.cur
call fcn.10048195
add esp, 0xc
test al, al
je 0x100838e4
mov dword [ebp - 0x14], ebx
jmp 0x1008362f
mov esi, dword [ebp + 0x70]
push 7
push esi
push str._size:
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1008390c
or dword [ebp - 0x58], 0x10
mov eax, dword [ebp - 0x54]
inc esi
inc esi
mov dword [ebp - 0x54], eax
mov dword [ebp + 0x70], esi
jmp 0x10083920
push 6
push esi
push 0x100d233c
call fcn.10040df5
add esp, 0xc
test al, al
je 0x10083985
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x54]
add esi, 0xc
push eax
mov dword [ebp + 0x54], esi
call fcn.1004bb61
mov eax, dword [ebp + 0x54]
movzx eax, word [eax]
cmp ax, di
pop ecx
pop ecx
je 0x1008398b
call fcn.10002df6
test al, al
jne 0x1008395c
add dword [ebp + 0x54], 2
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.1004bb61
pop ecx
pop ecx
mov eax, dword [ebp + 0x54]
movzx eax, word [eax]
cmp ax, di
je 0x1008398b
call fcn.10002df6
test al, al
jne 0x1008398b
add dword [ebp + 0x54], 2
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.1004bb61
pop ecx
pop ecx
jmp 0x1008398b
cmp word [esi], 0x2a
jne 0x100839c2
lea eax, [ebp + 0x70]
push eax
call fcn.10008e60
jmp 0x10083879
or dword [ebp + 0x60], 5
jmp 0x1008362f
mov eax, dword [ebp + 0x60]
and eax, 0xfffffffd
or eax, ebx
jmp 0x1008378b
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.1003f9c4
mov esi, dword [ebp + 0x70]
pop ecx
test byte [ebp + 0x4c], 0x10
jne 0x100839cb
mov dword [ebp], edi
mov eax, dword [ebp]
cdq
or dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x48]
or dword [ebp - 0x54], edx
or dword [ebp + 0x4c], eax
lea ecx, [ebp - 0x1c]
call fcn.10046123
mov ebx, 0x100c6a64
push ebx
lea ecx, [ebp + 0x54]
call fcn.100501eb
push ebx
lea ecx, [ebp + 0x40]
call fcn.100501eb
push ebx
lea ecx, [ebp + 0x38]
call fcn.100501eb
cmp dword [ebp + 0x14], edi
mov ebx, esi
je 0x10083abf
cmp dword [ebp + 0x60], 1
jne 0x10083abf
lea ecx, [ebp + 0x48]
call fcn.10046123
mov ax, word [esi]
cmp ax, 0x22
jne 0x10083a47
inc esi
inc esi
push 0x22
lea eax, [ebp + 0x70]
mov dword [ebp + 0x70], esi
call fcn.100a1095
mov eax, dword [ebp + 0x70]
cmp word [eax], di
pop ecx
je 0x10083a6d
add dword [ebp + 0x70], 2
jmp 0x10083a6d
cmp ax, di
je 0x10083a6d
movsx ecx, byte [ebp + 0x67]
movzx edx, ax
cmp ecx, edx
je 0x10083a6d
call fcn.10002df6
test al, al
jne 0x10083a6d
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x70], esi
jne 0x10083a50
lea eax, [ebp + 0x70]
push eax
call fcn.1003f9c4
mov esi, dword [ebp + 0x70]
mov ax, word [esi]
cmp ax, di
pop ecx
je 0x10083a8d
movsx ecx, byte [ebp + 0x67]
movzx eax, ax
cmp ecx, eax
jne 0x10083a20
mov eax, esi
sub eax, ebx
sar eax, 1
push eax
push ebx
lea ecx, [ebp + 0x48]
call fcn.10046247
mov ecx, dword [ebp + 0x5c]
push 1
push edi
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 0x48]
call fcn.10058f7c
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x48]
mov dword [ebp - 0x34], eax
call fcn.1003f96c
jmp 0x10083ad6
movsx ax, byte [ebp + 0x67]
push 1
lea ecx, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.1005b693
mov esi, dword [ebp + 0x70]
push edi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.1004907a
mov eax, dword [ebp - 0x1c]
add esp, 0xc
cmp dword [ebp + 0x60], edi
mov edx, eax
push 0x5c
mov dword [ebp + 0x70], edx
pop ebx
jne 0x10083b55
xor ecx, ecx
mov cx, word [eax]
jmp 0x10083b4a
mov eax, ecx
call fcn.10002df6
test al, al
jne 0x10083b55
cmp cx, 0x40
jne 0x10083b18
mov dword [ebp - 0xc], 1
jmp 0x10083b42
cmp cx, 0x24
jne 0x10083b27
mov dword [ebp - 0xc], 3
jmp 0x10083b42
cmp cx, bx
jne 0x10083b38
cmp word [edx + 2], bx
je 0x10083b51
or dword [ebp + 0x50], 1
jmp 0x10083b42
cmp cx, 0x21
jne 0x10083b55
or dword [ebp + 0x50], 2
inc edx
inc edx
mov cx, word [edx]
mov dword [ebp + 0x70], edx
cmp cx, di
jne 0x10083afe
jmp 0x10083b55
mov byte [ebp + 0x66], 1
lea eax, [ebp + 0x70]
push eax
call fcn.1003f9c4
mov eax, dword [ebp + 0x60]
and eax, 1
pop ecx
mov dword [ebp + 0x24], eax
jne 0x10083b75
push dword [ebp + 0x70]
call fcn.100132bf
pop ecx
jmp 0x10083b78
mov eax, dword [ebp + 0x70]
cmp dword [ebp + 0x50], edi
jne 0x10083ba3
cmp dword [ebp + 0x60], edi
jne 0x10083ba8
cmp byte [ebp + 0x66], 0
jne 0x10083ba8
cmp word [eax], bx
jne 0x10083b93
cmp word [eax + 2], bx
je 0x10083ba8
lea ecx, [ebp + 0x40]
push ecx
push eax
call fcn.10013659
pop ecx
pop ecx
jmp 0x10083bb1
inc eax
inc eax
cmp word [eax], bx
je 0x10083ba1
push eax
lea ecx, [ebp + 0x40]
call fcn.1005026c
movsx ebx, byte [ebp + 0x67]
movzx eax, word [esi]
cmp ebx, eax
jne 0x10083be6
movsx ax, byte [ebp + 0x67]
push 1
inc esi
inc esi
lea ecx, [ebp - 0x3c]
mov dword [ebp + 0x70], esi
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.1005b693
push edi
lea ecx, [ebp + 0x54]
push ecx
push eax
call fcn.1004907a
mov esi, dword [ebp + 0x70]
add esp, 0xc
cmp dword [ebp + 0x60], edi
jne 0x10083c1c
movzx eax, word [esi]
cmp ebx, eax
jne 0x10083c1c
movsx ax, byte [ebp + 0x67]
lea ecx, [ebp - 0x80]
inc esi
inc esi
mov dword [ebp + 0x70], esi
push eax
push ecx
push 1
push eax
lea eax, [ebp + 0x70]
push eax
lea ecx, [ebp - 0x3c]
call fcn.1005b693
push eax
call fcn.1004930e
mov esi, dword [ebp + 0x70]
add esp, 0xc
cmp dword [ebp - 0x80], edi
jg 0x10083c28
mov dword [ebp - 0x80], 0xfffffff8
movzx eax, word [esi]
cmp eax, ebx
je 0x10083c37
xor esi, esi
inc esi
jmp 0x100844f7
inc esi
lea eax, [ebp + 0x70]
inc esi
push eax
mov dword [ebp + 0x70], esi
call fcn.1003f9c4
pop ecx
push 0xffffffffffffffff
push dword [ebp + 0x70]
lea ecx, [ebp + 0x38]
call fcn.10046247
mov esi, dword [ebp + 0x38]
cmp word [esi], 0x2a
jne 0x10083c66
cmp word [esi + 2], di
mov byte [ebp + 0x66], 1
je 0x10083c6a
mov byte [ebp + 0x66], 0
lea ecx, [ebp - 0x48]
call fcn.10046123
cmp byte [ebp + 0x66], 0
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
jne 0x10083c8b
push 0xffffffffffffffff
push dword [ebp + 0x54]
lea ecx, [ebp - 0x48]
call fcn.10046247
mov eax, dword [ebp + 0x78]
cmp eax, edi
mov dword [ebp + 4], edi
je 0x10083c99
mov ebx, dword [eax]
jmp 0x10083c9b
xor ebx, ebx
cmp word [esi], di
mov dword [ebp + 0x48], ebx
jne 0x10083cbe
cmp ebx, edi
je 0x10083cbe
mov ecx, dword [ebp + 0x5c]
mov cx, word [ecx + 0x5a]
cmp cx, word [ebx]
jne 0x10083cbe
mov ecx, dword [ebp + 0x5c]
push edi
push edi
push eax
call fcn.100452f4
push 0x32a
lea ecx, [ebp - 0x24]
call fcn.10046141
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x5c]
and word [eax + 0x88], 0x8b
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x78], edi
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x3c], edi
mov dword [ebp - 0x30], edi
jne 0x10083d0b
cmp ebx, edi
je 0x10083d0b
mov ecx, dword [ebp + 0x5c]
mov cx, word [ecx + 0x5a]
cmp cx, word [ebx]
mov dword [ebp + 0x30], 0x100
je 0x10083d0e
mov dword [ebp + 0x30], edi
mov ecx, dword [ebp + 0x54]
cmp word [ecx], di
je 0x10083d27
cmp ax, di
jne 0x10083d27
cmp dword [ebp + 0x30], edi
mov dword [ebp - 0x28], 1
je 0x10083d2a
mov dword [ebp - 0x28], edi
mov eax, dword [ebp + 0x60]
mov ebx, dword [ebp + 0x40]
and eax, 4
mov dword [ebp - 0x20], edi
mov dword [ebp + 0x70], ebx
mov dword [ebp - 0x2c], eax
je 0x10083d8e
mov esi, 0x100e3d7c
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x5c]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x40]
call fcn.10010cdd
cmp eax, edi
jne 0x10083d70
push esi
mov dword [ebp - 0x30], 2
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100844a1
mov ecx, dword [eax + 0x10]
shr ecx, 1
push ecx
push dword [eax + 4]
lea ecx, [ebp - 0x20]
call fcn.10046247
mov ebx, dword [ebp - 0x20]
push esi
mov dword [ebp + 0x70], ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebp + 0x60], 2
je 0x10083e82
mov dword [ebp + 0x2c], edi
jmp 0x10083e68
cmp word [ebx], di
je 0x10083e75
mov eax, dword [ebp + 0x5c]
test byte [eax + 0x88], 0xef
jne 0x10083e75
cmp word [ebp + 0x34], di
mov dword [ebp + 0x78], ebx
lea eax, [ebp + 0x70]
je 0x10083dd0
push dword [ebp + 0x34]
call fcn.100a1095
pop ecx
jmp 0x10083dd5
call fcn.10005b53
push dword [ebp + 0x78]
mov ebx, dword [ebp + 0x70]
mov si, word [ebx]
push dword [ebp + 0x54]
mov ecx, dword [ebp + 0x5c]
mov word [ebx], di
call fcn.100457c2
cmp word [ebp + 0x34], di
jne 0x10083e04
cmp si, 0xd
jne 0x10083e04
cmp word [ebx + 2], 0xa
jne 0x10083e09
add ebx, 4
jmp 0x10083e0b
cmp si, di
je 0x10083e0e
inc ebx
inc ebx
mov dword [ebp + 0x70], ebx
inc dword [ebp + 0x3c]
cmp dword [ebp + 0x30], edi
je 0x10083e36
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x5c]
add eax, 2
push 0x100c6a64
mov dword [ebp + 4], eax
push edi
lea eax, [ebp + 4]
push eax
push dword [ebp + 0x74]
call fcn.1007b50e
jmp 0x10083e4e
mov eax, dword [ebp + 0x38]
cmp word [eax], di
je 0x10083e4e
push dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x5c]
push edi
push dword [ebp + 0x74]
push eax
call fcn.10034bed
mov ecx, dword [ebp + 0x5c]
mov ax, word [ecx + 0x88]
test ah, 1
je 0x10083e68
and ax, 0xfeff
mov word [ecx + 0x88], ax
cmp byte [0x100e12e4], 0
jg 0x10083da0
lea ecx, [ebp + 0x2c]
call fcn.1003f96c
jmp 0x100844a1
cmp dword [ebp + 0x24], edi
je 0x100841ec
cmp dword [ebp - 0x2c], edi
je 0x10083e9d
lea eax, [ebp + 0x70]
push eax
call fcn.1003f9c4
mov ebx, dword [ebp + 0x70]
pop ecx
mov eax, dword [ebp + 0x14]
fldz
fstp qword [ebp - 0x10]
dec eax
cmp dword [ebp + 0x1c], edi
fldz
fstp qword [ebp - 0x18]
mov dword [ebp + 0x50], edi
mov dword [ebp - 0x2c], eax
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x24], edi
mov dword [ebp + 0x28], 1
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0xc], edi
mov dword [ebp + 0x10], edi
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x67], 1
mov byte [ebp + 0x7b], 1
je 0x100841d0
lea eax, [ebp + 0x5b]
push eax
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x4c]
push eax
mov dword [ebp + 0x4c], ebx
mov byte [ebp + 0x5b], 0xc
call fcn.10046a9c
fstp qword [ebp - 8]
lea eax, [ebp + 0x4c]
push eax
call fcn.1003f9c4
lea eax, [ebp + 0x47]
push eax
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x4c]
push eax
mov byte [ebp + 0x47], 0xc
call fcn.10046a9c
fstp qword [ebp - 0x10]
lea eax, [ebp + 0x4c]
push eax
call fcn.1003f9c4
mov eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x2c]
adc ecx, dword [ebp + 0x24]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0x46]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x4c]
push eax
mov dword [ebp + 0x10], ecx
mov byte [ebp + 0x46], 0xc
call fcn.10046a9c
fstp qword [ebp - 0x18]
mov al, byte [ebp + 0x46]
or al, byte [ebp + 0x47]
add esp, 0x2c
or al, byte [ebp + 0x5b]
test al, 2
je 0x10083f6d
lea ecx, [ebp + 0x50]
call fcn.1003f96c
mov esi, 0x80070057
jmp 0x100844d7
fld qword [ebp - 0x10]
test al, 1
fcomp qword [0x100c9b80]
setne cl
inc cl
mov byte [ebp + 0x5b], cl
fnstsw ax
test ah, 5
jp 0x10083f8b
mov byte [ebp + 0x67], 0xff
cmp dword [ebp + 0x2c], edi
jg 0x10083f9b
jl 0x10083f97
cmp dword [ebp + 0x28], edi
jae 0x10083f9b
mov byte [ebp + 0x7b], 0xff
cmp cl, 1
jne 0x10083fb3
cmp dword [ebp + 0x28], edi
jne 0x100841d0
cmp dword [ebp + 0x2c], edi
je 0x10083f5b
jmp 0x100841d0
fld qword [ebp - 0x10]
fld qword [0x100c9b80]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10083f5b
jmp 0x100841d0
mov ax, word [ebx]
xor esi, esi
cmp ax, si
je 0x100841dd
mov ecx, dword [ebp + 0x5c]
test byte [ecx + 0x88], 0xef
jne 0x100841dd
cmp dword [ebp + 0x1c], esi
mov edi, ebx
je 0x100840fb
cmp byte [ebp + 0x5b], 1
jne 0x1008405c
cmp byte [ebp + 0x7b], 0
jle 0x1008401d
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp + 0x10]
jg 0x100841dd
jl 0x10084019
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp + 0xc]
ja 0x100841dd
cmp byte [ebp + 0x7b], 0
jge 0x10084039
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x24], eax
jl 0x100841dd
jg 0x10084039
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x20], eax
jb 0x100841dd
push dword [ebp + 0x54]
mov esi, dword [ebp + 0x20]
push esi
push dword [ebp + 0x5c]
call fcn.1004884d
mov eax, dword [ebp + 0x2c]
add esp, 0xc
add esi, dword [ebp + 0x28]
adc dword [ebp + 0x24], eax
mov dword [ebp + 0x20], esi
jmp 0x10084174
cmp byte [ebp + 0x67], 0
jle 0x10084077
fld qword [ebp - 8]
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 0x41
je 0x100841dd
cmp byte [ebp + 0x67], 0
jge 0x1008408a
fld qword [ebp - 8]
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 5
jnp 0x100841dd
fld qword [ebp - 8]
push 0x100cf5e0
push ecx
push ecx
lea eax, [ebp - 0x110]
fstp qword [esp]
push eax
call fcn.100a0ea0
add esp, 0x10
push 0x2e
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.SHLWAPI.dll_StrChrW]
mov edi, eax
test edi, edi
je 0x100840de
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [edi + eax*2 - 2]
jmp 0x100840ce
and word [eax], 0
dec eax
dec eax
cmp word [eax], 0x30
je 0x100840c8
cmp word [eax], 0x2e
jne 0x100840de
and word [eax], 0
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp - 0x110]
push eax
push dword [ebp + 0x54]
call fcn.100457c2
fld qword [ebp - 8]
fadd qword [ebp - 0x10]
fstp qword [ebp - 8]
jmp 0x10084174
cmp dword [ebp + 0x14], esi
je 0x10084139
cmp ax, 0x22
jne 0x10084139
mov ecx, dword [ebp - 0x2c]
lea edi, [ebx + ecx*2]
jmp 0x10084121
cmp ax, 0x22
jne 0x10084121
mov ax, word [ebx + 2]
call fcn.1003f9e4
test al, al
jne 0x10084130
inc ebx
inc ebx
mov ax, word [ebx]
cmp ax, si
mov dword [ebp + 0x70], ebx
jne 0x1008410e
jmp 0x10084146
inc ebx
inc ebx
mov esi, ecx
mov dword [ebp + 0x70], ebx
jmp 0x10084146
lea eax, [ebp + 0x70]
push eax
call fcn.10005b74
mov ebx, dword [ebp + 0x70]
pop ecx
lea eax, [esi + esi]
sub ebx, eax
sub ebx, edi
sar ebx, 1
push ebx
push edi
lea ecx, [ebp + 0x50]
call fcn.10046247
lea eax, [ebp + 0x70]
push eax
call fcn.1003f9c4
pop ecx
push dword [ebp + 0x50]
mov ecx, dword [ebp + 0x5c]
push dword [ebp + 0x54]
call fcn.100457c2
mov ebx, dword [ebp + 0x70]
inc dword [ebp + 0x3c]
xor ecx, ecx
cmp dword [ebp + 0x30], ecx
je 0x1008419e
mov eax, dword [ebp + 0x48]
add eax, 2
push 0x100c6a64
push ecx
mov ecx, dword [ebp + 0x5c]
mov dword [ebp + 4], eax
lea eax, [ebp + 4]
push eax
push dword [ebp + 0x74]
call fcn.1007b50e
jmp 0x100841b6
mov eax, dword [ebp + 0x38]
cmp word [eax], cx
je 0x100841b6
push dword [ebp + 0x7c]
push ecx
push dword [ebp + 0x74]
mov ecx, dword [ebp + 0x5c]
push eax
call fcn.10034bed
mov ecx, dword [ebp + 0x5c]
mov ax, word [ecx + 0x88]
test ah, 1
je 0x100841d0
and ax, 0xfeff
mov word [ecx + 0x88], ax
cmp byte [0x100e12e4], 0
jg 0x10083fca
lea ecx, [ebp + 0x50]
call fcn.1003f96c
xor edi, edi
jmp 0x100844a1
push dword [ebp + 0x40]
call fcn.100132bf
pop ecx
push eax
lea ecx, [ebp + 0x40]
call fcn.1005026c
mov esi, dword [ebp + 0x40]
cmp word [esi], di
je 0x100844a1
cmp dword [ebp + 0x50], edi
mov dword [ebp + 0x34], edi
mov byte [ebp + 0x73], 0
je 0x100842aa
cmp dword [ebp - 0x14], edi
je 0x10084255
lea eax, [ebp - 0x318]
push eax
push 0x104
mov word [ebp - 0x318], di
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov eax, dword [ebp - 0x318]
cmp ax, 0x61
mov dword [ebp + 0x34], eax
jb 0x10084255
cmp ax, 0x7a
ja 0x10084255
and eax, 0xffdf
mov dword [ebp + 0x34], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x24]
mov word [esi + 2], di
mov word [esi], di
push esi
mov word [eax + 2], di
push 0x324
mov word [eax], di
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov bl, byte [ebp + 0x50]
mov eax, esi
and bl, 2
cmp word [eax], di
mov dword [ebp + 0x78], esi
je 0x10084298
push esi
mov dword [ebp + 0x78], esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
cmp word [esi], di
jne 0x10084285
test bl, bl
mov eax, dword [ebp + 0x78]
jne 0x100842a2
mov eax, dword [ebp + 8]
mov dword [ebp + 0x78], eax
jmp 0x100843bf
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x40], edi
cmp dword [ebp + 0x30], edi
jne 0x100842c6
mov eax, dword [ebp + 0x38]
cmp word [eax], di
jne 0x100842c6
cmp dword [ebp - 0x28], edi
je 0x100844a1
cmp dword [ebp + 0x10], edi
je 0x100842eb
xor eax, eax
mov ax, word [esi]
cmp ax, di
je 0x100842eb
cmp word [esi + 2], 0x3a
jne 0x100842eb
push eax
call fcn.100b3696
test eax, eax
pop ecx
je 0x100843b6
lea ecx, [ebp + 0x60]
call fcn.10046123
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x60]
push eax
push esi
mov dword [ebp + 0x1c], edi
call fcn.1009e76f
add esp, 0xc
cmp dword [ebp + 0x2c], edi
je 0x1008431b
mov eax, dword [ebp + 0x1c]
sub eax, dword [ebp + 0x60]
sar eax, 1
cdq
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
cmp dword [ebp], edi
je 0x10084362
push 4
call fcn.100b4338
cmp eax, edi
pop ecx
je 0x10084339
lea ecx, [ebp + 0x60]
push ecx
mov ecx, eax
call fcn.1005023c
jmp 0x1008433b
xor eax, eax
push eax
lea ecx, [ebp - 0x8c]
call fcn.1000f82f
cmp dword [ebp + 0x50], edi
je 0x10084362
mov eax, dword [ebp + 0x78]
cmp word [eax], di
je 0x10084362
lea ecx, [ebp + 0x60]
mov byte [ebp + 0x73], 1
call fcn.1003f96c
jmp 0x100843bf
push dword [ebp + 0x7c]
mov esi, dword [ebp + 0x5c]
push dword [ebp - 4]
lea eax, [ebp - 0x80]
push eax
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x30]
or eax, dword [ebp + 0x4c]
mov ecx, esi
or eax, dword [ebp - 0xc]
push eax
push dword [ebp + 0x48]
lea eax, [ebp - 0x48]
push dword [ebp + 0x74]
push dword [ebp + 0x60]
push eax
call fcn.10082dcf
add dword [ebp + 0x3c], eax
mov ax, word [esi + 0x88]
test ah, 1
mov byte [ebp + 0x73], 0
je 0x100843ae
and ax, 0xfeff
mov word [esi + 0x88], ax
lea ecx, [ebp + 0x60]
call fcn.1003f96c
cmp dword [ebp + 0x50], edi
je 0x10084451
mov ebx, dword [ebp + 0x78]
cmp byte [0x100e12e4], 0
jle 0x10084451
cmp word [ebx], di
je 0x10084451
lea eax, [ebp - 0x80]
cmp dword [eax], edi
je 0x10084451
mov eax, dword [ebp + 0x5c]
test byte [eax + 0x88], 0xef
jne 0x10084451
push 0xffffffffffffffff
push ebx
lea ecx, [ebp + 0x18]
call fcn.10046247
push dword [ebp + 0x40]
lea ecx, [ebp + 0x18]
call fcn.1004618f
cmp dword [ebp - 0x14], edi
jne 0x1008443f
test byte [ebp + 0x50], 2
je 0x10084420
dec ebx
dec ebx
jmp 0x10084416
lea eax, [ebx - 2]
cmp word [eax], di
je 0x1008442e
mov ebx, eax
cmp ebx, dword [ebp + 8]
mov dword [ebp + 0x78], ebx
ja 0x1008440c
jmp 0x1008442e
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ebx, [ebx + eax*2 + 2]
mov dword [ebp + 0x78], ebx
mov esi, dword [ebp + 0x18]
mov ax, word [ebp + 0x34]
cmp ax, word [esi]
je 0x100843c2
jmp 0x100842b0
mov esi, dword [ebp + 0x18]
mov ax, word [ebp + 0x34]
mov word [esi], ax
mov dword [ebp - 0x14], edi
jmp 0x100842b0
cmp byte [ebp + 0x73], 0
je 0x100844a1
push 4
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push edi
call fcn.100463a2
mov eax, dword [eax]
mov eax, dword [eax]
add esp, 0x10
push dword [ebp + 0x7c]
lea ecx, [ebp - 0x80]
push dword [ebp - 4]
push ecx
push dword [ebp + 0x38]
mov ecx, dword [ebp + 0x30]
or ecx, dword [ebp + 0x4c]
or ecx, dword [ebp - 0xc]
push ecx
push dword [ebp + 0x48]
mov ecx, dword [ebp + 0x5c]
push dword [ebp + 0x74]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.10082dcf
add dword [ebp + 0x3c], eax
mov ecx, dword [ebp + 0x5c]
and word [ecx + 0x88], 0x8b
cmp byte [ebp + 0x66], 0
je 0x100844c0
push dword [ebp - 0x48]
push dword [ebp + 0x54]
call fcn.100457c2
jmp 0x100844d4
cmp dword [ebp - 0x28], edi
je 0x100844d4
push dword [ebp + 0x54]
push dword [ebp + 0x3c]
push ecx
call fcn.1004884d
add esp, 0xc
mov esi, dword [ebp - 0x30]
lea ecx, [ebp - 0x20]
call fcn.1003f96c
lea ecx, [ebp + 0x18]
call fcn.1003f96c
lea ecx, [ebp - 0x24]
call fcn.1003f96c
lea ecx, [ebp - 0x48]
call fcn.1003f96c
lea ecx, [ebp + 0x38]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x54]
call fcn.1003f96c
lea ecx, [ebp - 0x1c]
call fcn.1003f96c
lea ecx, [ebp - 0x8c]
call fcn.100ab7c3
lea ecx, [ebp - 0x8c]
call fcn.1003f96c
lea ecx, [ebp - 0x3c]
call fcn.1003f96c
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10