Function at 0x7b58d4
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x3b
push 0
push 0
dec ecx
jne 0x7b58dd
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405738
xor eax, eax
push ebp
push 0x7b6d8d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x12ceb30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
sete byte [ebp - 0xc1]
mov eax, 0x7d6298
call fcn.00405278
mov eax, 0x7d6294
call fcn.00405278
push 0x7b6da4
lea edx, [ebp - 0xd0]
mov eax, 0x4f
call fcn.005bfab4
push dword [ebp - 0xd0]
push 0x7b6db4
push 0x7b6dc0
lea eax, [ebp - 0xbc]
mov edx, 4
call fcn.00405608
mov dl, 1
mov eax, dword [0x41c338]
call fcn.00404418
mov dword [ebp - 0x70], eax
mov dl, 1
mov eax, dword [0x41c338]
call fcn.00404418
mov dword [ebp - 0x6c], eax
mov dl, 1
mov eax, dword [0x41c338]
call fcn.00404418
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea eax, [ebp - 0xb8]
call fcn.00405278
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x1c], 0x65
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x44]
lea eax, [ebp - 0xd4]
mov edx, dword [ebp - 0x14]
add edx, 0x40
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0xd8]
call fcn.004032b0
mov edx, 0x7b6dc4
lea eax, [ebp - 0xd8]
mov cl, 2
call fcn.00403280
lea edx, [ebp - 0xd8]
lea eax, [ebp - 0x60]
call fcn.004054ec
lea eax, [ebp - 0xdc]
mov ecx, 0x7b6dd0
mov edx, dword [ebp - 0x60]
call fcn.00405594
mov eax, dword [ebp - 0xdc]
call fcn.00405748
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 4
jne 0x7b5a4c
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x4ec]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x7b5e87
cmp dword [ebp - 0x3c], 2
jne 0x7b5a6c
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x504]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x7b5e87
mov eax, dword [0x7d66a8]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x7b5b19
inc eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x5c]
mov eax, dword [0x7d66a8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
call fcn.0040588c
test eax, eax
jle 0x7b5b0a
lea eax, [ebp - 0xe0]
push eax
mov edx, dword [ebp - 0x5c]
mov eax, 0x7b6ddc
call fcn.0040588c
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x5c]
call fcn.004057a8
mov eax, dword [ebp - 0xe0]
or edx, 0xffffffff
call fcn.0040a9e4
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jle 0x7b5b0a
lea edx, [ebp - 0xe4]
mov eax, dword [ebp - 0x28]
call fcn.0040a83c
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 0x38]
dec dword [ebp - 0xcc]
jne 0x7b5a8f
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jne 0x7b5beb
lea ecx, [ebp - 0xe8]
xor edx, edx
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xe8]
or edx, 0xffffffff
call fcn.0040a9e4
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jle 0x7b5be0
lea edx, [ebp - 0xf0]
mov eax, 0x56
call fcn.005bfab4
push dword [ebp - 0xf0]
push 0x7b6de8
lea edx, [ebp - 0xf4]
mov eax, dword [ebp - 0x28]
call fcn.0040a83c
push dword [ebp - 0xf4]
push 0x7b6df4
lea edx, [ebp - 0xf8]
mov eax, 0x50
call fcn.005bfab4
push dword [ebp - 0xf8]
push 0x7b6ddc
push dword [ebp - 0x60]
lea eax, [ebp - 0xec]
mov edx, 7
call fcn.00405608
mov edx, dword [ebp - 0xec]
imul ecx, dword [ebp - 0x28], 0x3e8
add ecx, 0x2710
mov eax, dword [ebp - 0x60]
movzx eax, byte [eax]
add ecx, eax
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
jmp 0x7b5beb
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jle 0x7b5d9b
lea ecx, [ebp - 0xfc]
xor edx, edx
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xfc]
or edx, 0xffffffff
call fcn.0040a9e4
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x64]
call fcn.00405278
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x7b5ce2
inc eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x30], 0
push dword [ebp - 0x64]
lea ecx, [ebp - 0x100]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x100]
push 0x7b6e00
lea eax, [ebp - 0x64]
mov edx, 3
call fcn.00405608
lea ecx, [ebp - 0x104]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x104]
or edx, 0xffffffff
call fcn.0040a9e4
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jle 0x7b5cb2
mov eax, dword [ebp - 0x28]
call fcn.00506f60
mov dword [ebp - 0x18], eax
jmp 0x7b5cb9
mov dword [ebp - 0x18], 0xffffffff
cmp dword [ebp - 0x18], 0
jl 0x7b5cd3
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jge 0x7b5cd3
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x30]
dec dword [ebp - 0xcc]
jne 0x7b5c4b
mov eax, dword [ebp - 0x64]
call fcn.00405548
dec eax
jle 0x7b5d04
mov eax, dword [ebp - 0x64]
call fcn.00405548
mov edx, eax
lea eax, [ebp - 0x64]
mov ecx, 1
call fcn.004057e8
cmp dword [ebp - 0x20], 0xffffffff
jle 0x7b5d90
mov eax, dword [ebp - 0x64]
call fcn.00405548
test eax, eax
jle 0x7b5d90
lea edx, [ebp - 0x10c]
mov eax, 0x56
call fcn.005bfab4
push dword [ebp - 0x10c]
push 0x7b6de8
push dword [ebp - 0x64]
push 0x7b6df4
lea edx, [ebp - 0x110]
mov eax, 0x50
call fcn.005bfab4
push dword [ebp - 0x110]
push 0x7b6ddc
push dword [ebp - 0x60]
lea eax, [ebp - 0x108]
mov edx, 7
call fcn.00405608
mov edx, dword [ebp - 0x108]
imul ecx, dword [ebp - 0x20], 0x3e8
add ecx, 0x2710
mov eax, dword [ebp - 0x60]
movzx eax, byte [eax]
add ecx, eax
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
jmp 0x7b5d9b
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x7b5e87
lea eax, [ebp - 0x114]
mov edx, dword [ebp - 0x14]
add edx, 0x40
call fcn.00405460
lea eax, [ebp - 0x114]
mov edx, 0x7b6e0c
call fcn.00405550
mov eax, dword [ebp - 0x114]
call fcn.00405748
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp eax, 0xff
ja 0x7b5df4
bt dword [0x12ceb34], eax
jae 0x7b5e87
mov byte [ebp - 0xbe], 1
cmp dword [ebp - 0x30], 2
jne 0x7b5e23
cmp dword [ebp - 0x14], 2
jg 0x7b5e23
mov eax, dword [ebp - 0x14]
add eax, 0x40
call fcn.005afe34
test al, al
je 0x7b5e23
mov byte [ebp - 0xbe], 0
cmp byte [ebp - 0xbe], 0
je 0x7b5e87
lea edx, [ebp - 0x11c]
mov eax, 0x50
call fcn.005bfab4
push dword [ebp - 0x11c]
push 0x7b6ddc
lea eax, [ebp - 0x120]
mov edx, dword [ebp - 0x14]
add edx, 0x40
call fcn.00405460
push dword [ebp - 0x120]
push 0x7b6e18
lea eax, [ebp - 0x118]
mov edx, 4
call fcn.00405608
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x14]
add ecx, 0x40
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1b
jne 0x7b59b0
mov eax, dword [ebp - 0xc8]
call fcn.00404448
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x7b6bfc
inc eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x124]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x124]
call fcn.00405548
cmp eax, 2
jl 0x7b6bed
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ecx, 0x3e8
cdq
idiv ecx
mov byte [ebp - 0xbd], dl
lea edx, [ebp - 0x128]
mov eax, dword [0x7d6938]
mov eax, dword [eax]
call fcn.0040a0f8
mov eax, dword [ebp - 0x128]
push eax
lea eax, [ebp - 0x12c]
mov dl, byte [ebp - 0xbd]
call fcn.00405460
mov eax, dword [ebp - 0x12c]
pop edx
call fcn.0040588c
test eax, eax
jg 0x7b6bed
lea ecx, [ebp - 0x74]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov al, byte [ebp - 0xbd]
sub al, 0x40
mov byte [ebp - 0x75], al
mov al, byte [ebp - 0x75]
call fcn.0040b31c
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
cmp dword [ebp - 0x84], 0
jne 0x7b5f7b
cmp dword [ebp - 0x88], 0
jae 0x7b5fb9
jmp 0x7b5f7d
jge 0x7b5fb9
mov eax, dword [ebp - 0x74]
call fcn.00405548
mov edx, dword [ebp - 0x74]
mov dl, byte [edx + eax - 2]
lea eax, [ebp - 0x130]
call fcn.00405460
mov edx, dword [ebp - 0x130]
mov eax, 0x7d6294
call fcn.00405550
xor edx, edx
mov al, byte [ebp - 0xbd]
call fcn.005c8fa8
jmp 0x7b6bed
mov al, byte [ebp - 0x75]
call fcn.0040b350
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
fild qword [ebp - 0x80]
fstp xword [ebp - 0x98]
wait
fild qword [ebp - 0x88]
fstp xword [ebp - 0xa8]
wait
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
push dword [ebp - 0x84]
push dword [ebp - 0x88]
mov al, byte [ebp - 0xbd]
call fcn.007b4e30
fld xword [ebp - 0x98]
fcomp dword [0x7b6e1c]
fnstsw ax
sahf
je 0x7b6bed
lea ecx, [ebp - 0x60]
mov edx, 0x7b6e28
mov eax, dword [ebp - 0x6c]
call fcn.00420344
lea eax, [ebp - 0x134]
push eax
mov eax, dword [ebp - 0x60]
call fcn.00405548
mov edx, eax
mov ecx, 1
mov eax, dword [ebp - 0x60]
call fcn.004057a8
mov eax, dword [ebp - 0x134]
mov edx, 0x7b6e38
call fcn.00405694
jne 0x7b6089
mov byte [ebp - 0xc0], 1
lea eax, [ebp - 0x138]
push eax
mov eax, dword [ebp - 0x60]
call fcn.00405548
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x60]
call fcn.004057a8
mov eax, dword [ebp - 0x138]
lea edx, [ebp - 0x34]
call fcn.004038a0
mov dword [ebp - 0x30], eax
jmp 0x7b609e
mov byte [ebp - 0xc0], 0
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x60]
call fcn.004038a0
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x60]
mov edx, 0x7b6e44
mov eax, dword [ebp - 0x6c]
call fcn.00420344
mov eax, dword [ebp - 0x60]
mov edx, 0x7b6e54
call fcn.00405694
jne 0x7b619e
lea eax, [ebp - 0xd4]
xor edx, edx
mov dl, byte [ebp - 0x75]
add edx, 0x40
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0xd8]
call fcn.004032b0
mov edx, 0x7b6dc4
lea eax, [ebp - 0xd8]
mov cl, 2
call fcn.00403280
lea edx, [ebp - 0xd8]
lea eax, [ebp - 0x13c]
call fcn.004054ec
mov edx, dword [ebp - 0x13c]
lea ecx, [ebp - 0x60]
mov eax, dword [ebp - 0x6c]
call fcn.00420344
cmp dword [ebp - 0x60], 0
je 0x7b619e
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebp - 0x60]
call fcn.00405548
mov edx, eax
mov ecx, 1
mov eax, dword [ebp - 0x60]
call fcn.004057a8
mov eax, dword [ebp - 0x140]
mov edx, 0x7b6e38
call fcn.00405694
jne 0x7b6189
mov byte [ebp - 0xc0], 1
lea eax, [ebp - 0x144]
push eax
mov eax, dword [ebp - 0x60]
call fcn.00405548
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x60]
call fcn.004057a8
mov eax, dword [ebp - 0x144]
lea edx, [ebp - 0x34]
call fcn.004038a0
mov dword [ebp - 0x30], eax
jmp 0x7b619e
mov byte [ebp - 0xc0], 0
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x60]
call fcn.004038a0
mov dword [ebp - 0x30], eax
cmp byte [ebp - 0xc0], 0
je 0x7b621a
push 0
push 0x100000
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
call fcn.00406410
push edx
push eax
mov eax, dword [ebp - 0x30]
cdq
cmp edx, dword [esp + 4]
jne 0x7b61d4
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x7b620d
jmp 0x7b61d8
pop edx
pop eax
jle 0x7b620d
push 0x7b6e60
lea edx, [ebp - 0x148]
mov eax, 0x114
call fcn.005bfab4
push dword [ebp - 0x148]
push 0x7b6e6c
lea eax, [ebp - 0xb4]
mov edx, 3
call fcn.00405608
jmp 0x7b628d
lea eax, [ebp - 0xb4]
call fcn.00405278
jmp 0x7b628d
mov eax, dword [ebp - 0x30]
cdq
push edx
push eax
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call fcn.004063ec
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
fild qword [ebp - 0x150]
fdiv dword [0x7b6e70]
fild qword [ebp - 0x88]
fcompp
fnstsw ax
sahf
jae 0x7b6282
push 0x7b6e60
lea edx, [ebp - 0x154]
mov eax, 0x114
call fcn.005bfab4
push dword [ebp - 0x154]
push 0x7b6e6c
lea eax, [ebp - 0xb4]
mov edx, 3
call fcn.00405608
jmp 0x7b628d
lea eax, [ebp - 0xb4]
call fcn.00405278
cmp byte [ebp - 5], 0
je 0x7b678d
lea edx, [ebp - 0x15c]
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x500]
call fcn.00478058
mov eax, dword [ebp - 0x15c]
lea edx, [ebp - 0x158]
call fcn.0040a0f8
mov eax, dword [ebp - 0x158]
push eax
lea eax, [ebp - 0x160]
mov dl, byte [ebp - 0xbd]
call fcn.00405460
mov eax, dword [ebp - 0x160]
pop edx
call fcn.0040588c
test eax, eax
jg 0x7b678d
lea eax, [ebp - 0x164]
mov dl, byte [ebp - 0xbd]
call fcn.00405460
lea eax, [ebp - 0x164]
mov edx, 0x7b6e0c
call fcn.00405550
mov eax, dword [ebp - 0x164]
call fcn.00405748
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 4
jne 0x7b635e
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x4ec]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x7b678d
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x4ec]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x7b678d
cmp dword [ebp - 0x3c], 2
jne 0x7b639b
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x504]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x7b678d
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x504]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x7b678d
lea eax, [ebp - 0x68]
mov edx, 0x7b6e7c
call fcn.00405310
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x2710
jl 0x7b6428
mov eax, dword [ebp - 0x3c]
sub eax, 0x2710
mov ecx, 0x3e8
cdq
idiv ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
call fcn.00506f60
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
call fcn.007c1fac
cmp eax, dword [ebp - 0x24]
jg 0x7b63f9
lea eax, [ebp - 0x68]
mov edx, 0x7b6e90
call fcn.00405310
jmp 0x7b6428
mov eax, dword [ebp - 0x10]
call fcn.007c1fcc
cmp eax, dword [ebp - 0x24]
jg 0x7b6415
lea eax, [ebp - 0x68]
mov edx, 0x7b6ea4
call fcn.00405310
jmp 0x7b6428
cmp dword [ebp - 0x24], 0
jl 0x7b6428
lea eax, [ebp - 0x68]
mov edx, 0x7b6eb8
call fcn.00405310
lea eax, [ebp - 0x168]
mov dl, byte [ebp - 0xbd]
call fcn.00405460
lea eax, [ebp - 0x168]
mov edx, 0x7b6e0c
call fcn.00405550
mov eax, dword [ebp - 0x168]
call fcn.00405748
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 4
jne 0x7b646c
lea eax, [ebp - 0x68]
mov edx, 0x7b6ecc
call fcn.00405310
lea eax, [ebp - 0xac]
mov edx, dword [ebp - 0x68]
call fcn.00405310
lea eax, [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov edx, dword [0x7d629c]
call fcn.00405594
cmp byte [ebp - 0xc0], 0
je 0x7b64cb
push 0
push 0x100000
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call fcn.00406410
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
fild qword [ebp - 0x150]
fild dword [ebp - 0x30]
fdivrp st(1)
fmul dword [0x7b6e70]
call fcn.00402d64
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x88]
sbb edx, dword [ebp - 0x84]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
fild qword [ebp - 0x150]
fild qword [ebp - 0x80]
fdivp st(1)
fmul dword [0x7b6e70]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00433fb0
mov dword [ebp - 0x2c], eax
mov eax, 0x64
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 6
cdq
idiv ecx
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x30]
jl 0x7b657b
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x16c], eax
fild dword [ebp - 0x16c]
mov eax, 0x65
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x170], eax
fild dword [ebp - 0x170]
fdivp st(1)
fmul dword [0x7b6ed8]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00433fb0
add eax, 0xd
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0xe
jge 0x7b65ee
mov dword [ebp - 0x40], 0xe
jmp 0x7b65ee
mov eax, 0x65
sub eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
sub edx, eax
cmp edx, dword [ebp - 0x2c]
jg 0x7b65e1
mov eax, 0x65
sub eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
sub edx, eax
mov eax, dword [ebp - 0x2c]
sub eax, edx
mov dword [ebp - 0x16c], eax
fild dword [ebp - 0x16c]
mov eax, 0x65
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x170], eax
fild dword [ebp - 0x170]
fdivp st(1)
fmul dword [0x7b6ed8]
call fcn.00402d64
add eax, 0xb
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0xd
jle 0x7b65ee
mov dword [ebp - 0x40], 0xd
jmp 0x7b65ee
cmp dword [ebp - 0x40], 0xa
jle 0x7b65ee
mov dword [ebp - 0x40], 0xa
cmp dword [ebp - 0x40], 0
jg 0x7b65fb
mov dword [ebp - 0x40], 1
cmp dword [ebp - 0x40], 0x10
jle 0x7b6608
mov dword [ebp - 0x40], 0x10
lea eax, [ebp - 0x174]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [0x7d629c]
call fcn.004057a8
mov eax, dword [ebp - 0x174]
mov edx, 0x7b6ee4
call fcn.00405694
jne 0x7b6665
mov eax, dword [ebp - 0x3c]
sub eax, 0x2710
mov ecx, 0x3e8
cdq
idiv ecx
push eax
mov al, byte [0x7d62a0]
push eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0xac]
mov al, byte [ebp - 0xbd]
call fcn.007b4734
jmp 0x7b678d
lea edx, [ebp - 0x64]
mov al, byte [ebp - 0xbd]
call fcn.005c8d8c
cmp dword [ebp - 0x7c], 0
jne 0x7b6681
cmp dword [ebp - 0x80], 0
ja 0x7b66ab
jmp 0x7b6683
jg 0x7b66ab
cmp dword [ebp - 0x84], 0
jne 0x7b6697
cmp dword [ebp - 0x88], 0
ja 0x7b66ab
jmp 0x7b6699
jg 0x7b66ab
xor edx, edx
mov al, byte [ebp - 0xbd]
call fcn.005c8fa8
jmp 0x7b6bed
lea eax, [ebp - 0x178]
push eax
mov cl, 0x2c
mov edx, 2
mov eax, dword [ebp - 0x64]
call fcn.0049c118
mov eax, dword [ebp - 0x178]
push eax
lea edx, [ebp - 0x17c]
mov eax, dword [ebp - 0x40]
call fcn.0040a83c
mov edx, dword [ebp - 0x17c]
pop eax
call fcn.00405694
jne 0x7b6717
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0x64]
call fcn.0040a0f8
mov eax, dword [ebp - 0x180]
push eax
lea edx, [ebp - 0x184]
mov eax, dword [ebp - 0x68]
call fcn.0040a0f8
mov eax, dword [ebp - 0x184]
pop edx
call fcn.0040588c
test eax, eax
jne 0x7b678d
lea edx, [ebp - 0x188]
mov al, 1
call fcn.004a29b8
mov eax, dword [ebp - 0x188]
lea ecx, [ebp - 0x58]
mov edx, dword [ebp - 0x68]
call fcn.0049d0c8
mov eax, dword [ebp - 0x58]
call fcn.0040adec
test al, al
jne 0x7b6750
xor edx, edx
mov al, byte [ebp - 0xbd]
call fcn.005c8fa8
jmp 0x7b678d
push dword [ebp - 0x58]
push 0x7b6ef0
lea edx, [ebp - 0x190]
mov eax, dword [ebp - 0x40]
call fcn.0040a83c
push dword [ebp - 0x190]
lea eax, [ebp - 0x18c]
mov edx, 3
call fcn.00405608
mov edx, dword [ebp - 0x18c]
mov al, byte [ebp - 0xbd]
call fcn.005c8fa8
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x96c]
mov edx, dword [eax]
call dword [edx + 0xcc]
dec eax
je 0x7b67ad
dec eax
je 0x7b6801
jmp 0x7b6858
lea eax, [ebp - 0x194]
push eax
fild qword [ebp - 0x80]
fdiv dword [0x7b6ef4]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x7b6f00
call fcn.0040beb0
mov edx, dword [ebp - 0x194]
lea eax, [ebp - 0x44]
mov ecx, 0x7b6f10
call fcn.00405594
jmp 0x7b688a
lea eax, [ebp - 0x1a4]
push eax
fild qword [ebp - 0x80]
fdiv dword [0x7b6ef4]
fdiv dword [0x7b6f14]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x7b6f20
call fcn.0040beb0
mov edx, dword [ebp - 0x1a4]
lea eax, [ebp - 0x44]
mov ecx, 0x7b6f30
call fcn.00405594
jmp 0x7b688a
push 0
push 0x100000
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call fcn.00406410
push edx
push eax
lea eax, [ebp - 0x1a8]
call fcn.0040a928
mov edx, dword [ebp - 0x1a8]
lea eax, [ebp - 0x44]
mov ecx, 0x7b6f3c
call fcn.00405594
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x96c]
mov edx, dword [eax]
call dword [edx + 0xcc]
dec eax
je 0x7b68aa
dec eax
je 0x7b6901
jmp 0x7b695b
lea eax, [ebp - 0x1ac]
push eax
fild qword [ebp - 0x88]
fdiv dword [0x7b6ef4]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x7b6f00
call fcn.0040beb0
mov edx, dword [ebp - 0x1ac]
lea eax, [ebp - 0x48]
mov ecx, 0x7b6f10
call fcn.00405594
jmp 0x7b6993
lea eax, [ebp - 0x1b0]
push eax
fild qword [ebp - 0x88]
fdiv dword [0x7b6ef4]
fdiv dword [0x7b6f14]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x7b6f20
call fcn.0040beb0
mov edx, dword [ebp - 0x1b0]
lea eax, [ebp - 0x48]
mov ecx, 0x7b6f30
call fcn.00405594
jmp 0x7b6993
push 0
push 0x100000
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
call fcn.00406410
push edx
push eax
lea eax, [ebp - 0x1b4]
call fcn.0040a928
mov edx, dword [ebp - 0x1b4]
lea eax, [ebp - 0x48]
mov ecx, 0x7b6f3c
call fcn.00405594
fld xword [ebp - 0xa8]
fcomp dword [0x7b6f40]
fnstsw ax
sahf
jbe 0x7b6a2b
fld xword [ebp - 0x98]
fcomp dword [0x7b6e1c]
fnstsw ax
sahf
jbe 0x7b6a2b
fld xword [ebp - 0x98]
fld xword [ebp - 0xa8]
fcompp
fnstsw ax
sahf
ja 0x7b6a2b
lea eax, [ebp - 0x1b8]
push eax
fld xword [ebp - 0xa8]
fld xword [ebp - 0x98]
fdivp st(1)
fmul dword [0x7b6e70]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x7b6f4c
call fcn.0040beb0
mov edx, dword [ebp - 0x1b8]
lea eax, [ebp - 0xb0]
mov ecx, 0x7b6f5c
call fcn.00405594
jmp 0x7b6a36
lea eax, [ebp - 0xb0]
call fcn.00405278
push dword [ebp - 0xbc]
push 0x7b6db4
push 0x7b6dc0
push dword [ebp - 0x74]
push 0x7b6f68
lea edx, [ebp - 0x1bc]
mov eax, 0x51
call fcn.005bfab4
push dword [ebp - 0x1bc]
push 0x7b6f74
push dword [ebp - 0x44]
push 0x7b6df4
lea edx, [ebp - 0x1c0]
mov eax, 0x52
call fcn.005bfab4
push dword [ebp - 0x1c0]
push 0x7b6f74
push dword [ebp - 0x48]
push 0x7b6ddc
push dword [ebp - 0xb0]
push dword [ebp - 0xb4]
lea eax, [ebp - 0xbc]
mov edx, 0xf
call fcn.00405608
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x2710
jge 0x7b6ad0
mov dword [ebp - 0x34], 0xffffffff
jmp 0x7b6ae3
mov eax, dword [ebp - 0x34]
sub eax, 0x2710
mov ecx, 0x3e8
cdq
idiv ecx
mov dword [ebp - 0x34], eax
push dword [0x7d6298]
lea edx, [ebp - 0x1c4]
mov eax, dword [ebp - 0x34]
call fcn.0040a83c
push dword [ebp - 0x1c4]
push 0x7b6ef0
lea eax, [ebp - 0x1c8]
mov dl, byte [ebp - 0xbd]
call fcn.00405460
push dword [ebp - 0x1c8]
push 0x7b6f80
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
lea eax, [ebp - 0x1cc]
call fcn.0040a928
push dword [ebp - 0x1cc]
push 0x7b6ef0
push dword [ebp - 0x84]
push dword [ebp - 0x88]
lea eax, [ebp - 0x1d0]
call fcn.0040a928
push dword [ebp - 0x1d0]
push 0x7b6db4
mov eax, 0x7d6298
mov edx, 9
call fcn.00405608
cmp byte [ebp - 0xc1], 0
je 0x7b6bed
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x54]
lea edx, [ebp - 0x50]
mov al, byte [ebp - 0xbd]
call fcn.007b7f28
lea eax, [ebp - 0xd4]
mov dl, byte [ebp - 0xbd]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0xd8]
call fcn.004032b0
mov edx, 0x7b6f84
lea eax, [ebp - 0xd8]
mov cl, 2
call fcn.00403280
lea edx, [ebp - 0xd8]
lea eax, [ebp - 0x1d4]
call fcn.004054ec
lea eax, [ebp - 0x1d4]
mov edx, dword [ebp - 0x50]
call fcn.00405550
mov edx, dword [ebp - 0x1d4]
mov eax, dword [0x12ceb30]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 0x38]
dec dword [ebp - 0xcc]
jne 0x7b5ebe
mov eax, dword [0x7d6298]
call fcn.00405548
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jle 0x7b6c21
mov eax, 0x7d6298
mov ecx, 1
mov edx, dword [ebp - 0x38]
call fcn.004057e8
lea edx, [ebp - 0x1d8]
mov eax, dword [0x7d7390]
mov eax, dword [eax]
mov eax, dword [eax + 0x500]
call fcn.00478058
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [0x7d6938]
mov edx, dword [edx]
lea eax, [ebp - 0x5c]
call fcn.00405594
mov eax, dword [ebp - 0x5c]
call fcn.00405548
test eax, eax
jle 0x7b6cb8
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x38], 1
lea edx, [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x38]
mov al, byte [eax + ecx - 1]
call fcn.005c8d8c
lea edx, [ebp - 0x1dc]
mov eax, dword [ebp - 0x64]
call fcn.0040a0f8
mov edx, dword [ebp - 0x1dc]
mov eax, 0x7b6f90
call fcn.0040588c
test eax, eax
jle 0x7b6cad
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x38]
mov al, byte [eax + edx - 1]
xor edx, edx
call fcn.005c8fa8
inc dword [ebp - 0x38]
dec dword [ebp - 0xcc]
jne 0x7b6c68
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xbc]
call fcn.004052cc
mov eax, dword [ebp - 0x70]
call fcn.00404448
mov eax, dword [ebp - 0x6c]
call fcn.00404448
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7b6d97
lea eax, [ebp - 0x1dc]
call fcn.00405278
lea eax, [ebp - 0x1d8]
call fcn.00405278
lea eax, [ebp - 0x1d4]
mov edx, 0xd
call fcn.0040529c
lea eax, [ebp - 0x194]
mov edx, 9
call fcn.0040529c
lea eax, [ebp - 0x168]
mov edx, 3
call fcn.0040529c
lea eax, [ebp - 0x15c]
call fcn.00405278
lea eax, [ebp - 0x158]
mov edx, 2
call fcn.0040529c
lea eax, [ebp - 0x148]
mov edx, 0x1c
call fcn.0040529c
lea eax, [ebp - 0xd0]
call fcn.00405278
lea eax, [ebp - 0xbc]
mov edx, 5
call fcn.0040529c
lea eax, [ebp - 0x74]
call fcn.00405278
lea eax, [ebp - 0x68]
mov edx, 0xa
call fcn.0040529c
lea eax, [ebp - 4]
call fcn.00405278
ret