Function at 0x10018520
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
push ebx
xor ebx, ebx
mov dword [ebp - 0x58], 0xfffffffa
push esi
push edi
mov byte [ebp - 1], bl
mov edi, edx
mov dword [ebp - 0x68], edi
mov dword [ebp - 0xa8], ecx
cmp byte [ebp - 1], bl
je 0x10018553
push 0xf1c
call dword [sym.imp.USER32.dll_GetSysColorBrush]
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10018562
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov dword [ebp - 0x28], 0x5db34e6d
or eax, 0xffffffff
mov dword [ebp - 0x48], 0xffff
mov dword [ebp - 0x14], 0x94b2ab76
mov dword [ebp - 0x1c], 0xa70051ef
push 1
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], ebx
pop esi
jmp 0x10018599
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x134], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001858c
cmp dword [ebp - 0x14], ebx
je 0x100185b4
mov eax, dword [ebp - 0x14]
mov edx, esi
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x48]
jne 0x100185b6
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x48]
setle cl
xor edx, edx
cmp eax, ecx
setg dl
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
neg edx
sbb edx, edx
inc edx
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], esi
cmp dword [ebp - 0x10], ebx
jl 0x10018619
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10018614
push ebx
push 0x1747
push 0x1cc6
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetWindowOrgEx]
dec dword [ebp - 0x10]
jns 0x100185ed
mov dword [ebp - 0x24], 0xfffffffe
mov dword [ebp - 0x1c], 0xeafb5d1c
mov dword [ebp - 8], 0xc23afc37
mov dword [ebp - 0x1c], 0xca8cda2a
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x2487223b
mov dword [ebp - 0x10], ebx
jmp 0x10018655
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xd4], 0x3526c715
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10018644
mov eax, dword [ebp - 8]
cmp dword [ebp - 8], ebx
je 0x10018673
mov dword [ebp - 0x1c], 3
mov edx, esi
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 8]
jne 0x10018675
mov edx, ebx
mov eax, dword [ebp - 8]
xor ecx, ecx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, 0x96b250
setge cl
imul ecx, dword [ebp - 8]
mov eax, dword [ebp - 8]
imul ecx, edx
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 8]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], ebx
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100186c5
push 0xac9
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x30], 0x666a756a
mov dword [ebp - 0x10], ebx
jmp 0x100186e5
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xc8], 0xfffffffe
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100186d4
mov dword [ebp - 0xc0], ebx
jmp 0x10018707
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x20], 0xc2039807
inc dword [ebp - 0xc0]
cmp dword [ebp - 0xc0], 0xd
jle 0x100186f3
mov dword [ebp - 0x30], ebx
jmp 0x1001873b
mov dword [ebp - 0x10], 0x1151c3c3
mov dword [ebp - 0x10], ebx
jmp 0x10018732
mov dword [ebp - 0x20], 0xc8f0d071
mov dword [ebp - 0x20], 0x649f6d4a
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff5
jg 0x10018721
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 9
je 0x10018715
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x20], 0x6758e356
mov dword [ebp - 8], ebx
jmp 0x1001875e
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x74], 0x399841b3
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10018750
mov dword [ebp - 8], ebx
jmp 0x1001877a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x84], 0x46880738
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10018769
mov dword [ebp - 0x6c], ebx
jmp 0x10018800
push 2
mov dword [ebp - 0x1c], 0x3843046b
mov dword [ebp - 8], ebx
pop ecx
jmp 0x100187a4
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xdc], 0x952eaa29
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10018793
mov dword [ebp - 8], ebx
jmp 0x100187bb
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xd0], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x100187ae
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x6c]
add eax, ecx
mov dword [ebp - 0xd0], eax
jne 0x100187d7
mov eax, ebx
cmp dword [ebp - 0x1c], ebx
je 0x100187d9
mov eax, esi
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x2a45
setg al
mov dword [ebp - 0x20], eax
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xfffffffc
je 0x10018784
mov dword [ebp - 0x10], ebx
jmp 0x10018819
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x40], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x1001880f
or eax, 0xffffffff
mov dword [ebp - 0x20], eax
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10018833
push ebx
call dword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10018847
push 0x674
push ebx
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setge dl
xor ecx, ecx
cmp edx, 0x12f3
push 5
setge cl
xor edx, edx
cmp eax, ecx
setg dl
xor ebx, ebx
imul edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp edx, eax
setle bl
sub ebx, dword [ebp - 0x24]
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
imul ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, ebx
setg cl
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setle dl
xor ecx, ecx
cmp edx, eax
pop eax
setg cl
sub ecx, dword [ebp - 0x40]
cmp eax, ecx
mov eax, dword [ebp - 0x40]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x28]
setne cl
xor ebx, ebx
add ecx, 0xffff560c
inc dword [ebp - 0x28]
cmp eax, ecx
jl 0x100188d5
mov eax, esi
cmp dword [ebp - 0x40], ebx
jne 0x100188d7
mov eax, ebx
imul eax, eax, 0xc28a
mov edx, 0xfffe
test eax, eax
je 0x1001890c
mov dword [ebp - 0x28], ebx
jmp 0x10018902
push ebx
call fcn.1001b848
mov eax, dword [ebp - 0x28]
pop ecx
cmp dword [ebp + eax*4 - 0x40], ebx
jne 0x10018ee9
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x100188eb
jmp 0x10018ee9
mov dword [ebp - 0x14], 0x6951ad38
mov dword [ebp - 0xc], 0x44426282
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0x89aa5088
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], ebx
jmp 0x1001893d
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x4c], 0x4c6a37d7
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x1001892f
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], 4
jge 0x10018961
or ecx, 0xffffffff
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x94], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1001894e
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jne 0x10018976
mov eax, ebx
neg eax
cmp eax, 0xafe44fa3
mov eax, ebx
jb 0x10018978
mov eax, esi
cmp eax, 0xb187b35f
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x54]
imul eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x54]
sub ecx, eax
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], ebx
jl 0x10018a66
or edi, 0xffffffff
mov eax, dword [ebp - 0xc]
xor edx, edx
push 7
pop esi
mov ecx, dword [ebp + eax*4 - 0x4c]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x4c]
cmp ecx, eax
mov eax, dword [ebp - 0xc]
sete dl
mov dword [ebp + eax*4 - 0x94], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 0x20]
sub esi, eax
mov eax, dword [ebp - 0xc]
sub esi, ecx
neg esi
sbb esi, esi
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x94]
inc esi
cmp eax, esi
mov eax, dword [ebp - 0xc]
setl dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x4c]
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, edi
setne dl
xor eax, eax
cmp edx, 0xfda8
setge al
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x34]
add ecx, eax
jne 0x10018a4b
mov eax, dword [ebp - 0xc]
cmp dword [ebp + eax*4 - 0x4c], ebx
jne 0x10018a4b
xor esi, esi
mov ecx, ebx
inc esi
jmp 0x10018a50
xor esi, esi
inc esi
mov ecx, esi
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x94], ecx
dec dword [ebp - 0xc]
jns 0x100189b8
mov edi, dword [ebp - 0x68]
mov dword [ebp - 0xc], 0xf94f378
or eax, 0xffffffff
mov dword [ebp - 0x20], 0xe0752570
mov dword [ebp - 0x10], 0xb07d0d1d
mov dword [ebp - 0x34], 0x3585ca25
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x60], 0xdd67
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x38], 0x8939
mov dword [ebp - 0x30], ebx
jmp 0x10018aac
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x3c], 0xc2e0cf57
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], esi
jl 0x10018a9e
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], ebx
jl 0x10018d47
or edi, 0xffffffff
mov dword [ebp - 0x38], 0x4872
xor edx, edx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 8], 0xfffffffa
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x2c], 8
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x3c]
cmp eax, edi
mov eax, dword [ebp - 0xc]
setge dl
xor ecx, ecx
add edx, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 0xc]
cmp edx, eax
setg cl
xor edx, edx
sub ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
cmp eax, 0xd4
mov eax, dword [ebp - 0x5c]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x64]
setg cl
xor edx, edx
cmp ecx, 0x7180
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xc]
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp + eax*4 - 0x3c]
cmp ecx, dword [ebp - 0x38]
jge 0x10018bf8
mov dword [ebp - 0x14], 0xbd3d
mov dword [ebp - 0x2c], ebx
jmp 0x10018b74
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x12c], 0x13110ea9
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jl 0x10018b63
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + eax*4 - 0x3c]
mov ecx, dword [ebp - 8]
sub ecx, 0x37a762af
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp edx, ecx
setle al
cmp eax, dword [ebp - 0x5c]
jne 0x10018b9e
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
cmp edi, eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x14]
jg 0x10018bc3
mov eax, esi
cmp dword [ebp - 0x14], ebx
jne 0x10018bc5
mov eax, ebx
push 6
pop edx
sub edx, eax
xor ecx, ecx
mov eax, dword [ebp - 0x3c]
sub edx, eax
mov eax, dword [ebp - 0x14]
cmp eax, edx
setle cl
cmp ecx, dword [ebp - 0x14]
jge 0x10018be1
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x12c], eax
jmp 0x10018c3c
mov dword [ebp - 0x2c], 0xbfe3aca4
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], ebx
jne 0x10018c32
cmp dword [ebp - 0x2c], ebx
jne 0x10018c12
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0x408d
mov ecx, ebx
jne 0x10018c34
mov ecx, esi
mov eax, dword [ebp - 0x2c]
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x10]
cmp ecx, eax
setne dl
cmp edx, esi
jg 0x10018c54
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x3c]
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setle dl
add edx, dword [ebp - 0x54]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], ebx
je 0x10018c82
mov eax, esi
cmp dword [ebp - 8], ebx
jne 0x10018c84
mov eax, ebx
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
je 0x10018d0b
mov dword [ebp - 0x2c], 7
xor ecx, ecx
mov dword [ebp - 0x38], 0x5b1a94cd
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 8]
test eax, eax
mov eax, dword [ebp - 0x60]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x54]
push 0
setl dl
xor ecx, ecx
cmp edx, eax
pop eax
setge cl
sub ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
inc ecx
setns al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x30], ebx
je 0x10018ce4
mov edx, esi
cmp dword [ebp - 0x2c], ebx
jne 0x10018ce6
mov edx, ebx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x38], ecx
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10018d3b
push 0xbdc
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
jmp 0x10018d3b
mov dword [ebp - 0x38], ebx
xor edx, edx
mov dword [ebp - 0x38], 0xd45ed723
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
cmp eax, ecx
mov eax, dword [ebp - 8]
setg dl
xor ecx, ecx
test eax, eax
setg cl
imul edx, ecx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x38], ebx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 8], eax
dec dword [ebp - 0xc]
jns 0x10018ac0
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x34]
cmp eax, 0xc4ae
setle cl
xor eax, eax
cmp ecx, edx
setg al
imul eax, eax, 0xf78b
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x20], 0x7a4860c0
mov dword [ebp - 0x20], 0xe5a60d00
mov dword [ebp - 0x18], ebx
jmp 0x10018d91
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x120], 0x6210b999
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10018d80
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10018dae
push ebx
push esi
push 0x41e
push ebx
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x114]
add ecx, 0x56f9b2cf
add eax, ecx
mov dword [ebp - 0x20], eax
mov eax, 0x3dd33a4a
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
push 3
mov dword [ebp - 0x18], 0xba2afe01
mov dword [ebp - 0x18], ebx
pop ecx
jmp 0x10018e3c
mov dword [ebp - 0x14], 0xd8987f2f
mov dword [ebp - 0x14], ebx
jmp 0x10018e0a
mov dword [ebp - 0x20], 0xfffffff6
dec dword [ebp - 0x20]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jle 0x10018dfd
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], ebx
jl 0x10018e39
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10018e31
push 0x1d01
push 0x1c82
push ebx
call dword [sym.imp.USER32.dll_CheckMenuItem]
dec dword [ebp - 0x14]
jns 0x10018e17
push 3
pop ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jle 0x10018df1
mov dword [ebp - 0x18], ebx
jmp 0x10018e54
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x80], 0xfffffff9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10018e46
cmp dword [ebp - 0x80], ebx
jne 0x10018ee4
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0x40], ebx
jne 0x10018ea5
mov ecx, dword [ebp - 0x80]
xor edx, edx
mov eax, dword [ebp - 0x40]
cmp ecx, eax
setle dl
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x40]
neg eax
sbb eax, eax
or ecx, 0xffffffff
inc eax
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x78]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x48]
setg cl
add eax, ecx
mov eax, ebx
je 0x10018ea7
mov eax, esi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x24], ebx
jne 0x10018ec2
mov ecx, ebx
cmp dword [ebp - 0x80], ebx
je 0x10018ec4
mov ecx, esi
mov eax, dword [ebp - 0x78]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, ebx
sete cl
neg ecx
cmp ecx, 0x55e3164c
je 0x10018ee6
mov eax, esi
mov dword [ebp - 0x40], eax
mov dword [ebp - 8], 0x5c68ec0a
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x18], ebx
jmp 0x10018f09
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb8], 0x386cce57
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10018ef8
mov dword [ebp - 8], 3
jmp 0x10018f3c
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10018f39
push 0x16df
push ebx
push 0x189f
push ebx
push 0x111e
push ebx
call dword [sym.imp.KERNEL32.dll_CompareStringW]
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffed
jle 0x10018f18
mov dword [ebp - 8], 3
cmp dword [ebp - 8], ebx
jl 0x1001901d
mov dword [ebp - 0x1c], 0xbf261718
mov dword [ebp - 0xc], ebx
jmp 0x10018f6f
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xe4], 0xfffffffd
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10018f5e
mov dword [ebp - 0xc], ebx
jmp 0x10018f8b
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x110], 0xfffffff6
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x10018f7a
mov dword [ebp - 0xc], ebx
jmp 0x10018fa3
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x100], esi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x10018f96
mov eax, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xfc], eax
test eax, eax
jne 0x10018fd8
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xb8]
mov eax, ebx
jmp 0x10018fda
mov eax, esi
mov dword [ebp - 0x110], eax
mov edx, esi
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 8]
add ecx, eax
mov dword [ebp - 0xac], ecx
mov eax, dword [ebp - 0x1c]
sub ecx, eax
inc dword [ebp - 0x1c]
cmp ecx, 8
mov eax, dword [ebp - 8]
cmovge edx, ebx
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x58], ecx
dec dword [ebp - 8]
jns 0x10018f52
lea eax, [ebp - 0x4d]
mov byte [ebp - 0x4d], bl
push ebx
push eax
call fcn.1001b590
mov dword [ebp - 0x28], 0x6951ad38
mov dword [ebp - 0xc], 0x44426282
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], 0x89aa5088
mov dword [ebp - 0x20], esi
pop ecx
mov dword [ebp - 0x58], ebx
pop ecx
mov dword [ebp - 0x24], ebx
jmp 0x1001905d
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x44], 0x4c6a37d7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x1001904f
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 4
jge 0x10019081
or ecx, 0xffffffff
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xa4], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x1001906e
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jne 0x10019096
mov eax, ebx
neg eax
cmp eax, 0xafe44fa3
mov eax, ebx
jb 0x10019098
mov eax, esi
cmp eax, 0xb187b35f
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov eax, dword [ebp - 0x28]
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], ebx
jl 0x10019181
or edi, 0xffffffff
mov eax, dword [ebp - 0xc]
xor edx, edx
push 7
pop esi
mov ecx, dword [ebp + eax*4 - 0x44]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x44]
cmp ecx, eax
mov eax, dword [ebp - 0xc]
sete dl
mov dword [ebp + eax*4 - 0xa4], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0x58]
sub esi, eax
mov eax, dword [ebp - 0xc]
sub esi, ecx
neg esi
sbb esi, esi
xor edx, edx
mov eax, dword [ebp + eax*4 - 0xa4]
inc esi
cmp eax, esi
mov eax, dword [ebp - 0xc]
setl dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x44]
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, edi
setne dl
xor eax, eax
cmp edx, 0xfda8
setge al
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x1c]
add ecx, eax
jne 0x10019168
mov eax, dword [ebp - 0xc]
cmp dword [ebp + eax*4 - 0x44], ebx
jne 0x10019168
mov ecx, ebx
jmp 0x1001916b
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xa4], ecx
dec dword [ebp - 0xc]
jns 0x100190d8
mov edi, dword [ebp - 0x68]
mov eax, edi
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0xa8]
mov edi, edx
mov esi, eax
call fcn.100184ae
add eax, esi
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret